Kubernetes Volume SubPath

Gitlab 需要拥有/etc/gitlab的读写权限,但是其中的/etc/gitlab/gitlab.rb又希望存储到kubernetes的configmp中;也就是说,需要给gitlab docker镜像挂在一个/etc/gitlab 的volume,但是又需要在/etc/gitlab上挂在一个/etc/gitlab/gitlab.rb文件;只能使用subpath;

   apiVersion: apps/v1beta2
   kind: Deployment
   metadata:
     namespace: ci
     name: gitlab
   spec:
     selector:
       matchLabels:
         app: gitlab
     replicas: 1
     template:
       metadata:
         labels:
           app: gitlab
       spec:
         volumes:
         - name: data
           persistentVolumeClaim:
            claimName: gitlab
         - name: etc
           persistentVolumeClaim:
            claimName: gitlab-etc
         - name: gitlab-rb
           configMap:
             name: gitlab
             items:
             - key: gitlab.rb
               path: etc/gitlab/gitlab.rb
         containers:
         - name: gitlab
           image: gitlab/gitlab-ce:11.0.4-ce.0
           ports:
           - name: https
             containerPort: 443
           - name: http
             containerPort: 80
           - name: ssh
             containerPort: 22
           volumeMounts:
           - name: etc
             mountPath: /etc/gitlab
           - name: gitlab-rb
             mountPath: /etc/gitlab/gitlab.rb
             subPath: etc/gitlab/gitlab.rb
           - name: data
             mountPath: /var/opt/gitlab

kubernetes-subpath用法(把文件挂载在已存在的目录下,不覆盖原目录)
kubernetes的configMap文件挂载不同的路径且不覆盖目录的解决方法
kubernetes笔记: subpath

你可能感兴趣的:(Kubernetes)