Estoy intentando implementar mongodb con el operador kubernetes en AWS EKS con EFS para la clase de almacenamiento. Simplemente siguiendo los ejemplos de documentación aquí:
https://github.com/mongodb/mongodb-kubernetes-operator
No entiendo cómo definir correctamente la denominación de PVC. Revisé los problemas de Github y Stack Overflow. Simplemente no encontrar el ejemplo para resolver lo que parece ser un problema simple.
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: mongodb spec: members: 1 type: ReplicaSet version: "4.2.6" security: authentication: modes: ["SCRAM"] users: - name: my-user db: admin passwordSecretRef: # a reference to the secret that will be used to generate the user's password name: my-user-password roles: - name: clusterAdmin db: admin - name: userAdminAnyDatabase db: admin scramCredentialsSecretName: my-scram statefulSet: spec: volumeClaimTemplates: - metadata: name: data-volume spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi storageClassName: "efs-sc"Eventos:
create Pod mongodb-0 in StatefulSet mongodb failed error: failed to create PVC -mongodb-0: PersistentVolumeClaim "-mongodb-0" is invalid: metadata.name: Invalid value: "-mongodb-0": a DNS-1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (eg 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')Repliqué este error y encontré un error en su archivo yaml. Falta una sangría en el nombre voluemClaimTemplates .
Este es su archivo yaml:
volumeClaimTemplates: - metadata: 👉 name: data-volume spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi storageClassName: "efs-sc"Y esta es la parte correcta con sangría fija:
volumeClaimTemplates: - metadata: 👉 name: data-volume spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi storageClassName: "efs-sc" Parece que debido a este error, el operador no pudo obtener el nombre correctamente y estaba tratando de crear volúmenes con su plantilla predeterminada. Puede verificarlo usted mismo con k get sts mongodb -oyaml :
volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi volumeMode: Filesystem - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: data-volume spec: accessModes: - ReadWriteOnce resources: requests: storage: 10G volumeMode: Filesystem