Spustenie viacerých struky go-ethereum s bežnými EFS skladovanie na AWS EKS/kubernetes

0

Otázka

Snažím spustiť go-ethereum uzol na AWS EKS, pre ktoré som používal statefulsets s nižšie konfigurácie. statefulset.yaml súbor

Behkubectl apply -f statefulset.yaml vytvára 2 struky, z ktorých 1 je v prevádzke a 1 je v CrashLoopBackOff štátu. Struky stav Po kontrolu protokolov na druhý pod chybu som stále je Fatal: Failed to create the protocol stack: datadir already used by another process. Denníky chýb som stále

Problém je najmä v dôsledku struky pomocou rovnakého adresára zapisovať(geth údajov) na pretrvávajúce objem(som.e struky sú písacie na "/údaje"). Ak môžem použiť úsek prejavu a montáž pod adresár na sub-directory s pod meno(pre napríklad: '/data/geth-0') funguje to v pohode. statefulset.yaml s objemom montáž na sub adresár s podname Ale moja požiadavka je, že všetky tri pod údajov je napísané v '/data' adresár. Nižšie je moja objem konfiguračnom súbore. objem konfigurácia

2

Najlepšiu odpoveď

1

Potrebujete dynamicky poskytovanie prístupu pre každý z vašich stateful pod. Najprv vytvoriť EFS trieda skladovania, ktoré podporujú dynamické ustanovenie:

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>

Aktualizovať spec na podporu nárok šablóny:

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šetky struky teraz písať svoje vlastné /údaje.

2021-11-24 16:23:38

Myslím si, že bude uchovávať každej jednotke údajov na iné miesto. Každej jednotke bude mať vlastný chaindata a že bude konzumovať veľa úložného priestoru. To, čo potrebujem, je, že struky zdieľať chaindata medzi nimi. Je to možné ?
Sahil Singh

Vaša aplikácia nepodporuje zdieľanie dát; vzhľadom na skutočnosť, že je vám už povedala ...datadir already used by another process.. Potrebujete overiť svoje žiadosti manuálne, ak je to možné, v prvom rade.
gohm'c
0

Rovnaký adresár nemôže byť opätovne použiť viacero inštancií go-ethereum, tak máte nasledujúce možnosti:

  1. Použiť rovnaké trvalé hlasitosti pre každý pod a používať podadresára na každej jednotke

  2. Použite samostatný trvalé hlasitosti pre každý pod, potom sa každý môže použiť rovnaké /data cesta

2021-11-24 09:28:51

V iných jazykoch

Táto stránka je v iných jazykoch

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