Kubernetes 头盔 PVC

问题描述

我有一个 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

像这样:

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