Недавно управляемый модуль в моем развертывании mongo на GKE был автоматически удален, и вместо него был создан новый. В результате все мои данные БД были потеряны.
Я указал PV для развертывания, и PVC тоже был привязан, и я использовал стандартный класс хранения (постоянный диск Google). Заявка на постоянный объем также не была удалена.
Вот изображение результата kubectl get pv
: ПВХ
Мое развертывание mongo вместе с утверждением постоянного тома и развертыванием службы было создано с помощью инструмента kompose
kubernets из файла docker-compose.yml для prisma 1 + mongodb развертывание.
Вот мои ямлы:
mongo-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
kompose.cmd: kompose -f docker-compose.yml convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
labels:
io.kompose.service: mongo
name: mongo
namespace: dbmode
spec:
replicas: 1
selector:
matchLabels:
io.kompose.service: mongo
strategy:
type: Recreate
template:
metadata:
annotations:
kompose.cmd: kompose -f docker-compose.yml convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
labels:
io.kompose.service: mongo
spec:
containers:
- env:
- name: MONGO_INITDB_ROOT_PASSWORD
value: prisma
- name: MONGO_INITDB_ROOT_USERNAME
value: prisma
image: mongo:3.6
imagePullPolicy: ""
name: mongo
ports:
- containerPort: 27017
resources: {}
volumeMounts:
- mountPath: /var/lib/mongo
name: mongo
restartPolicy: Always
serviceAccountName: ""
volumes:
- name: mongo
persistentVolumeClaim:
claimName: mongo
status: {}
mongo-persistentvolumeclaim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
creationTimestamp: null
labels:
io.kompose.service: mongo
name: mongo
namespace: dbmode
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 100Mi
status: {}
mongo-service.yaml
apiVersion: v1
kind: Service
metadata:
annotations:
kompose.cmd: kompose -f docker-compose.yml convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
labels:
io.kompose.service: mongo
name: mongo
namespace: dbmode
spec:
ports:
- name: "27017"
port: 27017
targetPort: 27017
selector:
io.kompose.service: mongo
status:
loadBalancer: {}
Я попытался проверить содержимое, смонтированное в /var/lib/mongo
, и все, что у меня было, это пустая lost+found/
папка, и я попытался выполнить поиск на постоянных дисках Google, но в корневом каталоге ничего не было, и я не знал, где еще искать.
Я предполагаю, что по какой-то причине развертывание mongo не извлекает из постоянного тома старые данные при запуске нового модуля, что вызывает крайнее недоумение.
У меня также есть другой проект Kubernetes, в котором произошло то же самое, за исключением того, что старый модуль все еще отображался, но имел статус evicted
.