如何判断我的容器是否在Kubernetes集群中运行?

时间:2016-04-15 05:42:40

标签: kubernetes

如何判断我是否在kubernetes群集中运行?使用docker我可以检查/.dockerinit是否存在。有没有等价的?

3 个答案:

答案 0 :(得分:4)

使用默认配置,Kubernetes会将serviceaccount机密挂载到pod中。只需检查此文件夹是否存在:/var/run/secrets/kubernetes.io。 无需设置环境变量。在红宝石中,我会做以下事情:

if File.exists?('/.dockerenv')
  puts "I'm running in a docker container"
end

if File.exists?('/var/run/secrets/kubernetes.io')
  puts "I'm also running in a Kubernetes pod"
end

答案 1 :(得分:3)

您可以在pod规范中将环境变量传递给容器。您甚至可以使用downward API通过环境变量将一些pod信息公开给容器。

答案 2 :(得分:2)

您可以检查KUBERNETES_SERVICE_HOST环境变量。

此变量始终在执行容器的环境中导出。

请参阅https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#environment-variables