2016-04-15 105 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 
相關問題