AWS eks'de ortak EFS depolama alanıyla birden fazla go-ethereum kapsülü çalıştırma/kubernetes

0

Soru

AWS eks'de bir go-ethereum düğümü çalıştırmaya çalışıyorum, bunun için aşağıdaki yapılandırmaya sahip durum kümeleri kullandım. durum kümesi.yaml dosyası

Koşmakubectl apply -f statefulset.yaml 1'in çalıştığı ve 1'in CrashLoopBackOff durumunda olduğu 2 bölme oluşturur. Kapsüllerin durumu İkinci bölmenin günlüklerini kontrol ettikten sonra aldığım hata şu şekildedir Fatal: Failed to create the protocol stack: datadir already used by another process. Aldığım hata günlükleri

Sorun esas olarak, kalıcı birimde(geth verileri) yazmak için aynı dizini kullanan bölmelerden kaynaklanmaktadır(yani bölmeler '/data'yazmaktadır). Bir alt yol ifadesi kullanırsam ve bölmenin dizinini bölme adıyla bir alt dizine bağlarsam (örneğin: '/data/geth-0') iyi çalışır. durum kümesi.podname ile bir alt dizine birim montajlı yaml Ancak benim gereksinimim, üç bölmenin tüm verilerinin' / data ' dizininde yazılmasıdır. Aşağıda birim yapılandırma dosyam var. birim yapılandırması

2

En iyi cevabı

1

Durum bilgisi bölmenizin her biri için erişim noktasını dinamik olarak sağlamanız gerekir. Önce dinamik provizyonu destekleyen bir EFS depolama sınıfı oluşturun:

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>

Talep şablonunu desteklemek için spesifikasyonunuzu güncelleyin:

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

Tüm bölmeler artık kendi / verilerine yazıyor.

2021-11-24 16:23:38

Sanırım bu her kapsülün verilerini farklı bir yerde saklar. Her bölmenin kendi zincir verisi olacak ve bu da çok fazla depolama alanı tüketecektir. İhtiyacım olan şey bölmelerin aralarında zincir verilerini paylaşması. Mümkün mü ?
Sahil Singh

Sizin uygulama yok destek veri paylaşımı; verilen aslında bunu zaten söyledin ...datadir already used by another process.. İlk etapta mümkünse başvuru kılavuzunuzu kontrol etmeniz gerekir.
gohm'c
0

Aynı dizin birden çok go-ethereum örneği tarafından yeniden kullanılamaz, bu nedenle aşağıdaki seçeneklere sahip olursunuz:

  1. Her bölme için aynı kalıcı birimi kullanın ve her bölme için bir alt dizin kullanın

  2. Her bölme için ayrı bir kalıcı birim kullanın, ardından her biri aynı birimi kullanabilir /data yol

2021-11-24 09:28:51

Diğer dillerde

Bu sayfa diğer dillerde

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