如何在pod定义中获取Kubernetes服务IP

时间:2016-04-14 06:28:47

标签: google-cloud-platform kubernetes

将Kubernetes 1.2.1与Google Cloud配合使用。我有一个定义并运行的服务。我想启动一个获取服务的群集IP地址的pod。这样我就可以将这个IP传递给容器启动时运行的脚本。

根据我的阅读,我可以使用表格MYSERVICE_SERVICE_HOST,其中MYSERVICE是服务的名称。这是Pod的定义:

apiVersion: v1
kind: Pod
metadata:
  labels:
    name: mypod
  name: mypod
spec:
  containers:
    - name: mypod
      image: myimage
      env:
        - name: VARIABLE_NAME
          value: MYSERVICE_SERVICE_HOST

图像的脚本运行此...

echo "Variable: $VARIABLE_NAME"

当我跑kubectl logs mypod时,我看到......

Variable: MYSERVICE_SERVICE_HOST

我做错了什么?

2 个答案:

答案 0 :(得分:2)

您的脚本运行正常。在您的pod yaml中,您将环境变量VARIABLE_NAME设置为MYSERVICE_SERVICE_HOST,并且您的脚本将打印出您指定的值。如果您将脚本更改为echo "MYSERVICE_SERVICE_HOST: $MYSERVICE_SERVICE_HOST",则应打印出您要查找的IP。

答案 1 :(得分:0)

您只需要将K8 env var名称包装在$()中

- name: VARIABLE_NAME
  value: $(MYSERVICE_SERVICE_HOST)