库伯内斯。是否可以将卷挂载到包含 pod id 的路径?

Kubernetes. Is it possible to mount volume to path containing pod id?

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

中定义的 mountPath 中使用 POD IP

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

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

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

POD on recreation will get a new UID so why will you try to hard code this value !!

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

您可以使用 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+ 中引入。