Creé mi propio clúster k8s usando Kubeadm con dos servidores virtuales Ubuntu: un nodo maestro y otro trabajador. También implementé una aplicación Springboot con persistencia MongoDB y funciona absolutamente bien. A continuación se muestran los nodos en mi clúster k8s
A continuación se muestra el contenido de mi archivo yaml que crea una clase de almacenamiento, volumen de persistencia, reclamo de volumen de persistencia, implementación de mongo y servicio de mongo
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: local-storage provisioner: kubernetes.io/no-provisioner volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true reclaimPolicy: Retain --- apiVersion: v1 kind: PersistentVolume metadata: name: mongo-pv spec: capacity: storage: 5Gi volumeMode: Filesystem accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain storageClassName: local-storage hostPath: path: "/home/moviepopcorn/mongodb/data" nodeAffinity: required: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/hostname operator: In values: - node1 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mongo-pvc spec: volumeName: mongo-pv volumeMode: Filesystem storageClassName: local-storage accessModes: - ReadWriteMany resources: requests: storage: 5Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: mongo labels: app: mongo spec: selector: matchLabels: app: mongo template: metadata: labels: app: mongo spec: containers: - name: mongo image: mongo:4.4.11 ports: - containerPort: 27017 volumeMounts: - name: mongo-persistent-storage mountPath: /home/moviepopcorn/mongodb/data volumes: - name: mongo-persistent-storage persistentVolumeClaim: claimName: mongo-pvc --- apiVersion: v1 kind: Service metadata: name: mongo-service spec: selector: app: mongo ports: - protocol: TCP port: 27017 targetPort: 27017Los datos almacenados desde mi Springboot en mongodb no se conservan una vez que reinicio los nodos en mi clúster k8s. ¿Podría ayudarme a entender qué error estoy cometiendo?
Es posible que haya actualizado la ruta de montaje de PVC y debido a que mongo no sabe dónde almacenar o guardar los datos
apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: mongo name: mongo spec: replicas: 1 selector: matchLabels: app: mongo strategy: {} template: metadata: creationTimestamp: null labels: app: mongo spec: containers: - image: mongo name: mongo args: ["--dbpath","/data/db"] livenessProbe: exec: command: - mongo - --disableImplicitSessions - --eval - "db.adminCommand('ping')" initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 successThreshold: 1 failureThreshold: 6 readinessProbe: exec: command: - mongo - --disableImplicitSessions - --eval - "db.adminCommand('ping')" initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 5 successThreshold: 1 failureThreshold: 6 env: - name: MONGO_INITDB_ROOT_USERNAME valueFrom: secretKeyRef: name: mongo-creds key: username - name: MONGO_INITDB_ROOT_PASSWORD valueFrom: secretKeyRef: name: mongo-creds key: password volumeMounts: - name: "mongo-data-dir" mountPath: "/data/db" volumes: - name: "mongo-data-dir" persistentVolumeClaim: claimName: "pvc"Pruebe el ejemplo anterior o verifique el argumento y la ruta de montaje como referencia.