我想通过yaml将物理IP转到dubbo pod,但参数是固定的value.For示例: dubbo.yaml
spec:
replicas: 2
...
env:
- name: PhysicalIP
value: 192.168.1.1在启动dubbo之前的pod中,我可以重放容器ip,例如:
echo "replay /etc/hosts"
cp /etc/hosts /etc/hosts.tmp
sed -i "s/.*$(hostname)/${PhysicalIP} $(hostname)/" /etc/hosts.tmp
cat /etc/hosts.tmp > /etc/hosts有一个问题,当pod部署到主机192.168.1.1和主机192.168.1.2时,主机192.168.1.2的pod环境变量${PhysicalIP}的值是192.168.1.1,我想在主机192.168.1.2中将${PhysicalIP}设置为192.168.1.2,有什么办法吗?
发布于 2017-03-29 06:07:37
您应该能够通过Environment Variables或使用DownwardAPIVolumeFile获取有关pod的信息。
使用环境变量的
您应该在您的yaml中添加类似如下的内容:
环境:-名称: MY_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName
据我所知,目前,节点的名称是从容器中获取所需内容的最佳方法。
使用DownwardAPIVolumeFile的
您应该在您的yaml中添加类似如下的内容:
卷:- name: podinfo downwardAPI: items:- path:“节点名”fieldRef: fieldPath: spec.nodeName
这样,节点名称的信息将存储在/etc/nodename中
kubernetes github上的问题#24657和拉动#42717与此相关。(对不起,我需要更多的声誉才能发布更多的链接!)
正如您在那里看到的,应该很快就可以通过downwardAPI (可能使用status.hostIP )访问节点IP了。
https://stackoverflow.com/questions/42690025
复制相似问题