วิ่งหลาย ipod ของ go-ethereum กับเหมือนกัน EFS ห้องเก็บขอบ AWS EKS/kubernetes

0

คำถาม

ฉันกำลังพยายามวิ่งไป-ethereum อนโหนดขึ้น AWS EKS สำหรับที่ฉันต้องใช้ statefulsets กับทางด้านล่างการปรับแต่ง statefulset.แฟ้ม language

วิ่งหนีkubectl apply -f statefulset.yaml สร้าง 2 ipod ออกจากที่ 1 กำลังทำงานอยู่และ 1 ใน CrashLoopBackOff องเมือง สถานะของ ipod หลังจากมาดูที่ปูมบันทึกสำหรับสองพ็อดข้อผิดพลาดฉันกำลังจะเป็น Fatal: Failed to create the protocol stack: datadir already used by another process. เกิดข้อผิดพลาดบันทึกของฉันได้

ปัญหาคือจุดประสงค์หลักเนื่องจาก ipod โดยใช้ไดเรกทอรีเดียวกันกัต้องเขียน(geth ข้อมูล)บน persistant ระดับเสียง(ผมก็ไม่ต่างกันหรอกอีง ipod เป็นการเขียนไปเป็น'/ข้อมูล'). ถ้าฉันใช้ subpath รแสดงและทำการเมานท์ pod ของไดเรกทอรีต้องเป็นรายการย่อยของไดเรกทอรีกับพ็ชื่อของ(สำหรับ eg:'/ข้อมูล/geth-0')มันทำงานสบายดี statefulset.language กับระดับเสียงการเมานท์ตำแหน่งจะเป็นรายการย่อยของไดเรกทอรีกับ podname แต่ของฉันสำคัญที่สุนั่นคือทั้งหมดสาม pod ของข้อมูลถูกเขียนที่'/ข้อมูล'ไดเรกทอรี ด้านล่างนี้เป็นของฉันระดับเสียงแฟ้มปรับแต่ง. การปรับแต่งค่าระดับเสียง

2

คำตอบที่ดีที่สุด

1

คุณต้อง dynamically provision คนเข้าประเด็นสำหรับแต่ละคนของคุณ stateful พ็อด ก่อสร้างเป็น EFS เก็บของชั้นเรียนที่สนับสนุนปรับอัตโนมัติ provision:

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>

ปรับปรุงของคุณ spec เพื่อสนับสนุนคำอ้างต้นแบบ:

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

เอา ipod ตอนนี้เขียนของพวกเขาเองพวก/ข้อมูล

2021-11-24 16:23:38

ฉันคิดว่านั่นจะเก็บแต่ละ pod ของข้อมูลที่แตกต่างตำแหน่งที่อยู่ แต่ละพ็จะต้องได้ตัวมันเอง chaindata และนั่นจะกินเวลาหลายห้องเก็บของ สิ่งที่ฉันต้องการนั่นคือ ipod แบ่งปัน chaindata เกิดขึ้นระหว่างพวกเขา มันเป็นไปได้มั๊ย?
Sahil Singh

โปรแกรมของคุณไม่รองรับการแบ่งปันข้อมูล;ให้ความจริงที่มันบอกเธอแล้ว ...datadir already used by another process.. คุณต้องตรวจสอบโปรแกรมของคุณเองถ้านั่นเป็นไปได้ในตอนแรก
gohm'c
0

เหมือนกัไดเรกทอรีไม่สามารถ reused โดยประมวลผลได้หลายตัวของ go-ethereum ดังนั้นคุณต้องติดตามตัวเลือก:

  1. ใช้คนเดียวกันดื้อดึงมาตลอดระดับเสียงสำหรับแต่ละ pod และใช้ subdirectory สำหรับแต่ละ pod

  2. ใช้แยกกันดื้อดึงมาตลอดระดับเสียงสำหรับแต่ละถูกแล้วแต่ละสามารถใช้คนเดียวกัน /data เส้นทาง

2021-11-24 09:28:51

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

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