ras*_*iya 3 persistent-storage docker kubernetes google-kubernetes-engine
我有一个在GKE上运行的postgres容器和一个用于存储数据的设置。但是,如果集群重新启动或删除,数据库中的所有数据都会丢失。PodPersistentVolumePod
如果我运行kubectl delete <postgres_pod>删除现有Pod并检查新创建的(由kubernetes)Pod替换已删除的数据库,则相应的数据库没有Pod删除之前的数据。
这是我用来部署postgres的yaml文件。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: custom-storage
parameters:
type: pd-standard
provisioner: kubernetes.io/gce-pd
reclaimPolicy: Retain
volumeBindingMode: Immediate
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: postgres-volume-claim
spec:
storageClassName: custom-storage
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
Run Code Online (Sandbox Code Playgroud)
部署.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres
spec:
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:11.5
resources: {}
ports:
- containerPort: 5432
env:
- name: POSTGRES_DB
value: "dbname"
- name: POSTGRES_USER
value: "user"
- name: POSTGRES_PASSWORD
value: "password"
volumeMounts:
- mountPath: /var/lib/postgresql/
name: postgresdb
volumes:
- name: postgresdb
persistentVolumeClaim:
claimName: postgres-volume-claim
Run Code Online (Sandbox Code Playgroud)
我仔细检查了persistentVolumeReclaimPolicy具有价值Retain。
我错过了什么?
每次删除 Pod 时,集群是否都会创建一个新卷?与kubectl get pv.
这是多专区集群吗?您的存储类不是配置区域磁盘,因此当 pod 从一个区域移动到另一个区域时,您可能会获得一个新磁盘。
可能与您的问题有关,postgres 容器参考建议安装/var/lib/postgresql/data/pgdata并设置PGDATAenv 变量:https :
//hub.docker.com/_/postgres#pgdata
| 归档时间: |
|
| 查看次数: |
2079 次 |
| 最近记录: |