我知道我可以定义这样的内容以在容器中获取容器名称:
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
但是当我跑步时:$kubectl get pods
我得到不同的结果,例如:uipod-5d6795db87-cxxkg
对应于<replicatset name>-cxxkg
。
是否可以将全名(uipod-5d6795db87-cxxkg
)作为环境变量?不仅是吊舱名称(uipod
)。
非常感谢
答案 0 :(得分:0)
您不需要使用Pod名称显式设置环境变量,该环境变量已经在Pod中作为称为HOSTNAME
的环境变量存在。
例如
$ kubectl run nginx --image=nginx
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectlrun --generator=run-pod/v1 or kubectl create instead.
deployment.apps/nginx created
$
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-7bb7cd8db5-kddbs 1/1 Running 0 12s
$
$ kubectl exec -it nginx-7bb7cd8db5-kddbs bash
root@nginx-7bb7cd8db5-kddbs:/#
root@nginx-7bb7cd8db5-kddbs:/# env | grep HOSTNAME
HOSTNAME=nginx-7bb7cd8db5-kddbs
root@nginx-7bb7cd8db5-kddbs:/#
注意:如您所见,HOSTNAME
环境变量已经设置了确切的容器名称。