Spuštění více lusky go-ethereum s běžnými EFS ukládání na AWS EKS/kubernetes

0

Otázka

Snažím se spustit go-ethereum uzel na AWS EKS, pro které jsem použil statefulsets s níže konfiguraci. statefulset.yaml

Běžíkubectl apply -f statefulset.yaml vytváří 2 moduly, z nichž 1 je běh a 1 je v CrashLoopBackOff státu. Lusky stav Po kontrole protokoly pro druhý modul chybu jsem stále je Fatal: Failed to create the protocol stack: datadir already used by another process. Chybové hlášky jsem stále

Problém je hlavně kvůli lusky pomocí stejného adresáře pro zápis(vyléčením dat) na perzistentní objem(i.e lusky jsou psaní na '/data'). Pokud používám subpath projevu a montáž modulu adresář sub-adresář s pod jménem(např: '/data/problémy-0') to funguje v pohodě. statefulset.yaml s objemem montáž na sub adresář s podname Ale můj požadavek je, že všechny tři modulu data je napsáno v '/data' adresář. Níže je moje volume config. objem konfiguraci

2

Nejlepší odpověď

1

Potřebujete dynamicky poskytování přístupového bodu pro každou z vašich stavové pod. Nejprve vytvořit EFS storage class, které podporují dynamické poskytování:

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>

Aktualizujte svůj spec na podporu tvrzení šablonu:

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

Všechny lusky teď napište vlastní /data.

2021-11-24 16:23:38

Myslím, že to bude ukládat každý pod to dat na jiné místo. Každý modul bude mít vlastní chaindata a to spotřebuje hodně úložného prostoru. Co potřebuju, je, že lusky sdílet chaindata mezi nimi. Je to možné ?
Sahil Singh

Vaše aplikace nepodporuje sdílení údajů; vzhledem k tomu, že to už řekl ...datadir already used by another process.. Budete muset zkontrolujte, zda váš aplikační manuál pokud je to možné, v první řadě.
gohm'c
0

Stejný adresář nelze opětovně použít více instancí go-ethereum, tak máte následující možnosti:

  1. Použití stejné trvalé hlasitosti pro každý modul a použít podadresář pro každý modul

  2. Použít samostatný přetrvávající hlasitosti pro každý modul, pak každý může použít stejný /data cesta

2021-11-24 09:28:51

V jiných jazycích

Tato stránka je v jiných jazycích

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