pod 重启后 emptyDir 卷不为空?
emptyDir volume not empty after pod restart?
我们正在尝试 运行 minikube (1.18.1) Kubernetes (1.16.15) 集群中的 PostgreSQL,以便在每次 pod 重新部署时重置数据库。
在我们的部署模板中,我们有:
containers:
- name: mock-db
image: postgres:13
imagePullPolicy: "IfNotPresent"
ports:
- name: postgres
containerPort: 5432
volumeMounts:
- mountPath: /docker-entrypoint-initdb.d
name: postgresql-init
- mountPath: /var/lib/postgresql/data
name: postgresql-data
volumes:
- name: postgresql-init
configMap:
name: "mock-db-init-scripts"
optional: false
- name: postgresql-data
emptyDir:
medium: Memory
基于 docs,这应该可以正常工作:
When a Pod is removed from a node for any reason, the data in the emptyDir is deleted permanently.
但是,在 helm uninstall
和随后的 helm upgrade --install
之后,我在容器日志中得到了这个:
PostgreSQL Database directory appears to contain a database; Skipping initialization
很明显,该卷没有被清除。为什么?我需要更改配置吗?
这是我错过的:
- 初始化脚本失败并且
- 容器立即重启。
音量完全没有问题。
我们正在尝试 运行 minikube (1.18.1) Kubernetes (1.16.15) 集群中的 PostgreSQL,以便在每次 pod 重新部署时重置数据库。
在我们的部署模板中,我们有:
containers:
- name: mock-db
image: postgres:13
imagePullPolicy: "IfNotPresent"
ports:
- name: postgres
containerPort: 5432
volumeMounts:
- mountPath: /docker-entrypoint-initdb.d
name: postgresql-init
- mountPath: /var/lib/postgresql/data
name: postgresql-data
volumes:
- name: postgresql-init
configMap:
name: "mock-db-init-scripts"
optional: false
- name: postgresql-data
emptyDir:
medium: Memory
基于 docs,这应该可以正常工作:
When a Pod is removed from a node for any reason, the data in the emptyDir is deleted permanently.
但是,在 helm uninstall
和随后的 helm upgrade --install
之后,我在容器日志中得到了这个:
PostgreSQL Database directory appears to contain a database; Skipping initialization
很明显,该卷没有被清除。为什么?我需要更改配置吗?
这是我错过的:
- 初始化脚本失败并且
- 容器立即重启。
音量完全没有问题。