库伯内斯。是否可以将卷挂载到包含 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+ 中引入。
我想定义 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+ 中引入。