Kubernetes 我可以在同一部署的吊舱中装载不同的主机吗?
对于日志,我将一个卷从主机装载到pod上。这写在部署yaml中。 但是,如果我的两个pod在同一台主机上运行,就会发生冲突,因为两个pod都会生成同名的日志文件。 我可以在部署文件中使用一些动态变量,以便为不同的POD使用不同的名称创建主机上的装载吗?您可以使用它来实现绝对路径的唯一性,这是此功能的用例之一。到目前为止,它在k1.14中是alpha 在本例中,Pod使用subPathExpr在hostPath卷/var/log/pods中创建一个目录pod1,使用向下API中的Pod名称。主机目录/var/log/pods/pod1安装在容器中的/logs处Kubernetes 我可以在同一部署的吊舱中装载不同的主机吗?,kubernetes,containers,Kubernetes,Containers,对于日志,我将一个卷从主机装载到pod上。这写在部署yaml中。 但是,如果我的两个pod在同一台主机上运行,就会发生冲突,因为两个pod都会生成同名的日志文件。 我可以在部署文件中使用一些动态变量,以便为不同的POD使用不同的名称创建主机上的装载吗?您可以使用它来实现绝对路径的唯一性,这是此功能的用例之一。到目前为止,它在k1.14中是alpha 在本例中,Pod使用subPathExpr在hostPath卷/var/log/pods中创建一个目录pod1,使用向下API中的Pod名称。主机目
查看pod关联/反关联以避免在同一节点上调度复制副本。这样,特定部署的每个副本都部署在单独的节点上。你不必为同一个文件夹被多个pod使用而烦恼。我不得不为此花费数小时,你的解决方案非常有效! 尝试过,尽管有多个文档,但都不起作用。 子图片库:“$POD_名称” subPathExpr:$POD_NAME 子图片库:${POD_NAME}
最后,这个方法成功了,subPathExpr:$(POD_NAME)除此之外,我已经考虑过了。
apiVersion: v1
kind: Pod
metadata:
name: pod1
spec:
containers:
- name: container1
env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
image: busybox
command: [ "sh", "-c", "while [ true ]; do echo 'Hello'; sleep 10; done | tee -a /logs/hello.txt" ]
volumeMounts:
- name: workdir1
mountPath: /logs
subPathExpr: $(POD_NAME)
restartPolicy: Never
volumes:
- name: workdir1
hostPath:
path: /var/log/pods