2016-04-15 44 views
2

如何判断我是否在kubernetes集群内运行?随着码头,我可以检查是否存在/.dockerinit。有没有相同的东西?如何判断我的容器是否在Kubernetes集群内运行?

+0

我认为你可以使用从kubernetes kubectl命令行工具。 [设置它](https://cloud.google.com/container-engine/docs/before-you-begin)运行kubectl获取豆荚。你将得到豆荚(容器)列表。 http://kubernetes.io/docs/user-guide/kubectl-cheatsheet/ –

+0

我想要我的Golang应用程序以编程方式查找。 – CESCO

+0

您可以使用kubernetes [客户端库](https://github.com/kubernetes/kubernetes/tree/release-1.2/pkg/client/)来访问代码中的kubernetes apis。对不起,我不知道确切的API名称,但我认为你必须阅读一些API文档。 –

回答

2

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

+0

这就是我一直在寻找的! – CESCO

+0

@CESCO我也在尝试检测我的python代码是在kubernetes吊舱上还是在笔记本电脑上运行。有没有办法做到这一点事先没有提前设置环境变量? – jtlz2

0

使用默认配置,Kubernetes将把serviceaccount秘密安装到窗格中。只需检查是否存在此文件夹:/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 
相关问题