Модули Kubernetes не разделяют ресурсы

У меня есть kubernetes кластер с mongo-express стручки (3) разговаривают с mongodb (3) стручки пользуются услугами стажера и работают нормально.

И я выставил переднюю часть mongo-express капсулы с использованием LoadBalancer тип услуги для доступа извне.

Он работает, как ожидалось, но проблема в следующем:

Когда я создаю базу данных в mongo-express UI и сохраните его, а затем создайте collectionи добавить некоторые значения, он работает, но когда я перезагружаю страницу, эти значения исчезают. И снова при перезагрузке они появляются

Я думаю, что ценности, которые сохраняются в mongodb стручки не используются совместно mongodb стручки, хотя я использовал Persistent объем и PersistentVolumeClaimс.

Когда я пытаюсь сохранить базу данных и коллекцию, она работает, потому что обращается к одному mongodb pod, у которого есть эти значения, и когда я пытаюсь перезагрузить, они отсутствуют, потому что теперь внутренняя служба пытается отправить трафик другому mongodb pod, где не удалось найти сохраненные данные.

Вот ямл, который я использую. Может кто-нибудь помочь мне, как решить эту проблему?

       apiVersion: v1
kind: Secret
metadata: 
  name: mongodb-secret
  # namespace: mongo
type: Opaque 
data:
  mongo-username: dXNlcm5hbWU=
  mongo-password: cGFzc3dvcmQ=

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: mongodb-url
  # namespace: mongo  
data:
  database_url: mongodb-service

---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/root"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: task-pv-claim
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi            
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongodb-deployment
  # namespace: mongo  
  labels:
    name: mongodb
spec:
  replicas: 2
  selector:
    matchLabels:
      app: mongodb
  template:
    metadata:
      labels: 
        app: mongodb
    spec:
      containers:
      - name: mongodb
        image: mongo
        ports:
        -  containerPort: 27017
        env: 
        - name: MONGO_INITDB_ROOT_USERNAME
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-username
        - name: MONGO_INITDB_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-password
        volumeMounts:
        - name: data  
          mountPath: /data/db
      volumes: 
        - name: data
          persistentVolumeClaim: 
            claimName: task-pv-claim    
                                  
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mongo-express
  # namespace: mongo  
  labels:
    app: mongo-express
spec:
  replicas: 4
  selector:
    matchLabels:
      app: mongo-express
  template:
    metadata:
      labels:
        app: mongo-express
    spec:
      containers:
      - name: mongo-express
        image: mongo-express
        ports:
        - containerPort: 8081
        env:
        - name: ME_CONFIG_MONGODB_SERVER
          valueFrom:
            configMapKeyRef:
              name: mongodb-url
              key: database_url
        - name: ME_CONFIG_MONGODB_ADMINUSERNAME
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-username
        - name: ME_CONFIG_MONGODB_ADMINPASSWORD
          valueFrom:
            secretKeyRef:
              name: mongodb-secret
              key: mongo-password
        volumeMounts:
        - name: data  
          mountPath: /data/db
      volumes: 
        - name: data
          persistentVolumeClaim: 
            claimName: task-pv-claim                  
---
apiVersion: v1
kind: Service
metadata:
  name: mongodb-service
  # namespace: mongo  
spec:
  selector:
    app: mongodb
  ports:
    - protocol: TCP
      port: 27017
      targetPort: 27017

---

apiVersion: v1
kind: Service
metadata:
  name: mongo-express-service
  # namespace: mongo  
spec:
  selector:
    app: mongo-express
  type: LoadBalancer
  ports:
    - protocol: TCP
      port: 8081
      targetPort: 8081
      nodePort: 30000

Думаю, это общая проблема, которую легко исправить, но я новичок в kubernetes и все еще учусь.

Спасибо.

Вот скриншот коллекции banukaЯ создал, и когда я перезагружаю ту же страницу, она исчезает. а когда снова перезагружаю, появляется.

и он ушел, поскольку теперь он пересылает трафик и получает данные из другого mongodb стручок

0 ответов

Другие вопросы по тегам