首页 > 解决方案 > 内省 Docker/Kubernetes Runtime 以检查它是 Docker 容器还是 Kubernetes 集群中 POD 内的容器

问题描述

如何在运行时通过非常简单的自省来检查它是普通的 docker 容器还是包装在 pod 中的容器?

标签: kubernetesgoogle-kubernetes-engineazure-aksaws-fargateamazon-eks

解决方案


Kubernetes 默认在容器内设置了很多环境变量。您可以检查是否设置了其中任何一个。例如:KUBERNETES_SERVICE_HOST

# kubectl exec -it api-server-594f9684b-jg2d4 env | grep KUBERNETES
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_HOST=10.96.0.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
KUBERNETES_PORT=tcp://10.96.0.1:443

https://kubernetes.io/docs/concepts/containers/container-environment-variables/


推荐阅读