如何将PVC的子路径安装到容器中的特定路径

时间:2018-07-13 04:31:05

标签: kubernetes-helm

我有一个由云提供商提供的存储。可以通过PVC将存储安装到容器中。

有什么方法可以指定磁盘的子路径,然后安装到容器的特定路径。

我尝试了如下自定义值,但这不起作用。

Persistence:
  Enabled: true
  ## A manually managed Persistent Volume and Claim
  ## Requires Persistence.Enabled: true
  ## If defined, PVC must be created manually before volume will be bound
  ExistingClaim: ci-jenkins-data

  ## jenkins 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: "-"

  Annotations: {}
  AccessMode: ReadWriteOnce
  Size: 100Gi
  volumes:
    - name: ci-jenkins-data
      mountPath: /var/jenkins_home
      subPath: /volume/jenkins

1 个答案:

答案 0 :(得分:1)

由于一个PVC只能被声明一次,因此Iam假设您要在单个Pod中批量安装子文件夹。我在volumeMounts部分中指定了子路径,如下所示。

apiVersion: v1
kind: Pod
metadata:
  name: my-lamp-site
spec:
    containers:
    - name: mysql
      image: mysql
      env:
      - name: MYSQL_ROOT_PASSWORD
        value: "rootpasswd" 
      volumeMounts:
      - mountPath: /var/lib/mysql
        name: site-data
        subPath: mysql
    - name: php
      image: php:7.0-apache
      volumeMounts:
      - mountPath: /var/www/html
        name: site-data
        subPath: html
    volumes:
    - name: site-data
      persistentVolumeClaim:
        claimName: my-lamp-site-data

上面的摘录是从https://kubernetes.io/docs/concepts/storage/volumes/#using-subpath复制的

我确定您可能尝试过hostpath,但是1.9原始块卷支持可能会帮助您解决问题。

让我知道这是否有帮助。

问候 苏达喀尔