问题描述
我有一个 yml 文件,我在其中在我的提供商(数字海洋)上创建了一个 pvc
apiVersion: v1
kind: PersistentVolumeClaim
Metadata:
name: test-pvc
namespace: test
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: do-block-storage
我也在使用 helm chart 并且希望能够指向已经创建的 pvc 我怎样才能做到这一点?在 PVC 已经创建/部署之后部署这个舵图
master:
persistence:
enabled: true
## mariadb data Persistent Volume Storage Class
## If defined,storageClassName: <storageClass>
## If set to "-",storageClassName: "",which disables dynamic provisioning
## If undefined (the default) or set to null,no storageClassName spec is
## set,choosing the default provisioner. (gp2 on AWS,standard on
## GKE,AWS & OpenStack)
##
# storageClass: "-"
accessMode: ReadWriteOnce
size: 10Gi
解决方法
要将您的 PVC 安装到您的掌舵图表中,请执行以下操作:
- 在 helm chart 中禁用持久性卷的创建
master:
persistence:
enabled: false #Setting it to false
- 修改您的部署 yaml,它位于您的掌舵图表的模板文件夹中。 Point your Pod to mount your own PVC。
像这样:
apiVersion: v1
kind: Pod
metadata:
name: task-pv-pod
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: test-pvc # pointing to existing test-pvc
containers:
- name: task-pv-container
image: nginx
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage
更新:
特别是在您的情况下,您可以在 values.yaml 中针对 existingClaim parameter 指定 pvc 名称,它将是 picked up by your deployment。