Модули 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
стручок