Rulează mai multe păstăi de du-te-ethereum cu frecvente EFS stocare pe AWS EKS/kubernetes

0

Problema

Eu sunt încercarea de a rula un du-te-ethereum nod pe AWS EKS, pentru că am folosit statefulsets cu de configurare de mai jos. statefulset.yaml

De funcționarekubectl apply -f statefulset.yaml creează 2 păstăi din care 1 se execută și 1 este în CrashLoopBackOff de stat. Păstăi de stare După verificarea jurnalelor de-al doilea pod de eroare primesc este Fatal: Failed to create the protocol stack: datadir already used by another process. Jurnalele de eroare primesc

Problema se datorează în principal păstăi folosind același director a scrie(geth de date) pe persistentă de volum(am.e păstăile sunt scris '/date'). Dacă am folosi un subpath exprimare și muntele pod e director la un subdirector cu numele pod(de exemplu: '/date/geth-0') funcționează bine. statefulset.yaml cu volumul de montare a unui sub-director cu podname Dar cerință este ca toate cele trei pod de date este scris la '/date' director. Mai jos este volumul meu config. volumul de configurare

2

Cel mai bun răspuns

1

Aveți nevoie pentru a dinamic furnizarea punctul de acces pentru fiecare dintre informațiile de pod. În primul rând a crea un EFS storage class care acceptă dynamic prevedere:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: efs-dyn-sc
provisioner: efs.csi.aws.com
reclaimPolicy: Retain
parameters:
  provisioningMode: efs-ap
  directoryPerms: "700"
  fileSystemId: <get the ID from the EFS console>

Actualizați spec pentru a sprijini afirmația șablon:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: geth
...
spec:
  ...
  template:
  ...
  spec:
    containers:
    - name: geth
      ...
      volumeMounts:
      - name: geth
        mountPath: /data
      ...
  volumeClaimTemplates:
  - metadata:
      name: geth
    spec:
      accessModes:
      - ReadWriteOnce
      storageClassName: efs-dyn-sc
      resources:
        requests:
          storage: 5Gi

Toate păstăi acum scrie pentru propria lor /date.

2021-11-24 16:23:38

Cred că va stoca fiecare pod de date în altă locație. Fiecare pod va avea propriul chaindata și care va consuma o multime de stocare. Ceea ce am nevoie este ca păstăile să împărtășească chaindata între ele. Este posibil ?
Sahil Singh

Cererea dumneavoastră nu are suport pentru schimbul de date; dat fiind faptul că deja ți-a spus ...datadir already used by another process.. Aveți nevoie pentru a verifica aplicarea manuală, dacă este posibil, în primul rând.
gohm'c
0

Același director nu pot fi reutilizate de mai multe instanțe de du-te-ethereum, astfel încât aveți următoarele opțiuni:

  1. Utilizați aceeași persistentă de volum pentru fiecare pod și de a folosi un subdirector pentru fiecare pod

  2. Utilizarea separată persistente de volum pentru fiecare pod, apoi fiecare poate folosi același /data calea

2021-11-24 09:28:51

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................