我想定义pvc并创建卷,以便从外部容器中获取一些内部文件(我正在使用头盔图表定义)。我想知道有什么方法可以在我在deployment.yaml中定义的mountPath中使用POD IP。
最后,我想在节点中获取文件夹结构 / dockerdata-nfs //路径
volumeMounts:
- name: volumeName
mountPath: /abc/path
volumes:
- name: volumeName
hostPath:
path: /dockerdata-nfs/podID/
答案 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+版本中引入了此功能。