我想通过yaml将物理IP传输到dubbo pod,但参数是固定值。例如: 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,有什么办法吗?
答案 0 :(得分:0)
您应该可以通过Environment Variables或使用DownwardAPIVolumeFile获取有关广告连播的信息。
使用环境变量:
你应该添加这样的东西:
env:
- name: MY_NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
据我所知,该节点的名称现在是您从容器内部获得所需内容的最佳方法。
使用DownwardAPIVolumeFile:
你应该添加这样的东西:
volumes:
- name: podinfo
downwardAPI:
items:
- path: "nodename"
fieldRef:
fieldPath: spec.nodeName
这样,您将获得存储在/ etc / nodename
中的节点名称的信息kubernetes github上的问题#24657和拉#42717与此有关。 (对不起,我需要更多声望才能发布更多链接!)。
正如您所见,通过向下API可以很快访问节点IP(可能使用status.hostIP)。