Kubernetes。是否可以将卷安装到包含pod id的路径?

时间:2020-02-11 08:22:10

标签: kubernetes deployment kubernetes-helm kubernetes-pvc

我想定义pvc并创建卷,以便从外部容器中获取一些内部文件(我正在使用头盔图表定义)。我想知道有什么方法可以在我在deployment.yaml中定义的mountPath中使用POD IP。

最后,我想在节点中获取文件夹结构 / dockerdata-nfs //路径

volumeMounts:
     - name: volumeName
       mountPath: /abc/path

volumes:
    - name: volumeName
      hostPath:
        path: /dockerdata-nfs/podID/

2 个答案:

答案 0 :(得分:1)

休闲时的POD将获得一个新的UID,所以为什么要尝试对该值进行硬编码!

Pods被认为是相对短暂的(而不是持久的)实体。如Pod生命周期中所述,将创建Pod,为Pod分配唯一ID(UID),并将Pod调度到它们所保留的节点,直到终止(根据重新启动策略)或删除为止。如果某个节点死亡,则在超时时间段后,计划安排删除该节点的Pod。给定的Pod(由UID定义)不会“重新安排”到新节点;取而代之的是,它可以由相同的Pod替换,如果需要,甚至可以使用相同的名称,但具有新的UID (有关更多详细信息,请参见复制控制器)。

答案 1 :(得分:0)

您可以使用subPathExpr基于POD UID创建mountPath。以下Yaml: apiVersion: v1 kind: Pod metadata: name: pod1 spec: containers: - name: container1 env: - name: UID valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.uid image: busybox volumeMounts: - name: workdir1 mountPath: /logs subPathExpr: $(UID) volumes: - name: workdir1 hostPath: path: /var/log/pods Kubernetes 1.14+版本中引入了此功能。