【发布时间】:2019-11-01 11:57:54
【问题描述】:
我已在本地环境中为 Postgres pod 配置了持久性卷的静态配置。它第一次工作正常但是当我删除命名空间和 重新运行 pod,然后它的状态为挂起并给我错误 pod 有未绑定的立即持久性卷声明
我尝试从 Persistance Volume 声明中删除 storageClassName 但不起作用 我也尝试将 storeageclass 从手动更改为块存储,但同样的问题
我的 yaml 文件
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
namespace: manhattan
labels:
type: local
spec:
storageClassName: manual
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
hostPath:
path: "/opt/manhattan/current/pgdata"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: task-pv-claim
namespace: manhattan
spec:
storageClassName: manual
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: Pod
metadata:
name: postgres
namespace: manhattan
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: task-pv-claim
containers:
- name: dbr-postgres
image: postgres-custome
tty: true
volumeMounts:
- mountPath: "/var/lib/pgsql/9.3/data"
name: task-pv-storage
nodeSelector:
kubernetes.io/hostname: k8s-master
即使我删除命名空间并重新运行 pod.yaml 文件,我也希望我的 pod 能够运行
【问题讨论】:
-
您使用的是哪个Cloud Provider?
-
我现在在本地运行
-
您希望删除或保留 pv 中的数据?
-
我想在集群中保留持久化卷。我希望我新创建的命名空间仍然指向以前的持久性卷
-
@UDITJOSHI 如果你想再次绑定你的 pv 你需要添加 persistentVolumeReclaimPolicy: Recycle 因为在默认开启 Retain 的情况下,不可能有另一个声明,查看更多关于 Reclaiming here
标签: kubernetes postgresql-9.3 persistent-storage