【问题标题】:Directories creation inside the Kubernetes Persistent Volume在 Kubernetes 持久卷中创建目录
【发布时间】:2022-04-14 21:12:13
【问题描述】:

我们如何在 kubernetes 持久卷中创建一个目录来挂载以在容器中用作 subPath ? eg: mysql 目录应该在声明持久卷时创建

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    我可能会将一个 init 容器放入我的 podspec 中,它只是挂载卷并运行 mkdir -p 来创建目录然后退出。您也可以使用某种脚本在目标容器本身中执行此操作。

    https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

    【讨论】:

    • 确实很好的解决方案!
    【解决方案2】:

    我认为您可以使用 readinessProbe 来使用 execAction 创建子文件夹。它将确保您的文件夹在容器准备好接受请求之前准备就绪。

    否则,您可以使用 COMMAND 选项来创建它。但这会在容器启动后执行。

    【讨论】:

      【解决方案3】:

      这就是我使用initContainermkdir -p 实现@brett-wagner 的明智解决方案的方式。我在我的 NFS 服务器卷 /exports 中创建了两个子目录 my-app-datamy-app-media

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: my-nfs-server-deploy
        labels:
          app: my-nfs-server
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: my-nfs-server
        template:
          spec:
            containers:
            - name: my-nfs-server-cntr
              image: k8s.gcr.io/volume-nfs:0.8
              volumeMounts:
              - name: my-nfs-server-exports
                mountPath: "/exports"
            initContainers:
            - name: volume-dirs-init-cntr
              image: busybox:1.35
              command:
              - "/bin/mkdir"
              args:
              - "-p"
              - "/exports/my-app-data"
              - "/exports/my-app-media"
              volumeMounts:
              - name: my-nfs-server-exports
                mountPath: "/exports"
            volumes:
            - name: my-nfs-server-exports
              persistentVolumeClaim:
                claimName: my-nfs-server-pvc
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-09
        • 1970-01-01
        • 1970-01-01
        • 2018-07-26
        • 1970-01-01
        相关资源
        最近更新 更多