Ejecuta varias vainas de etereum comunes de la EFS de almacenamiento de AWS EKS/kubernetes

0

Pregunta

Estoy tratando de ejecutar un go-etereum nodo en AWS EKS, para la que he utilizado statefulsets con la siguiente configuración. statefulset.archivo yaml

Ejecuciónkubectl apply -f statefulset.yaml crea 2 vainas de los cuales 1 está en funcionamiento y 1 está en CrashLoopBackOff estado. Las vainas de estado Después de la comprobación de los registros por segundo pod el error que estoy recibiendo es Fatal: Failed to create the protocol stack: datadir already used by another process. Los registros de Error que estoy recibiendo

El problema es principalmente debido a que las vainas utilizar el mismo directorio para escribir(geth de datos) en la persistente volumen i.e las vainas son de escritura a "/data"). Si yo uso una subruta de expresión y de montaje de la vaina del directorio a un sub-directorio con vaina nombre(por ejemplo: '/data/geth-0') funciona bien. statefulset.yaml con el volumen de montaje para un sub directorio con podname Pero mi requisito es que todos los tres pod de los datos se escriben en '/' datos del directorio. A continuación es el volumen de mi archivo de configuración. configuración de volumen

2

Mejor respuesta

1

Necesita disponer dinámicamente el punto de acceso para cada uno de su estado de pod. Primero crear una EFS clase de almacenamiento que soporte dinámico disposició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>

Actualización de su especificación para apoyar el reclamo de la plantilla:

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

Todas las vainas que escribe ahora a sus propios /de datos.

2021-11-24 16:23:38

Creo que va a almacenar cada cápsula de datos en un lugar diferente. Cada grupo tendrá su propia chaindata y que consumen una gran cantidad de almacenamiento. Lo que necesito es que las vainas compartir chaindata entre ellos. Es posible ?
Sahil Singh

Su aplicación no admite el uso compartido de datos; dado el hecho de que ya te dije ...datadir already used by another process.. Usted necesita revisar su manual de aplicación, si eso es posible en el primer lugar.
gohm'c
0

El mismo directorio no puede ser reutilizada por varias instancias de etereum, así que usted tiene las siguientes opciones:

  1. El uso de la misma persistente de volumen para cada núcleo y utilizar un subdirectorio para cada pod

  2. Use una hoja persistente de volumen para cada núcleo, a continuación, cada uno puede usar el mismo /data camino

2021-11-24 09:28:51

En otros idiomas

Esta página está en otros idiomas

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