如何判断我是否在kubernetes群集中运行?使用docker我可以检查/.dockerinit
是否存在。有没有等价的?
答案 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
环境变量。
此变量始终在执行容器的环境中导出。