kubernetes将物理IP转移到dubbo

时间:2017-03-09 08:16:41

标签: kubernetes

我想通过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,有什么办法吗?

1 个答案:

答案 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)。