繁体   English   中英

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

[英]How to get Kubernetes service IP inside a pod definition

将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

我究竟做错了什么?

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

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

- name: VARIABLE_NAME
  value: $(MYSERVICE_SERVICE_HOST)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM