将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
我做错了什么?
答案 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)