2016-04-15 19 views
2

kubernetesクラスタ内で実行しているかどうかを確認するにはどうすればよいですか?ドッカーで/.dockerinitが存在するかどうかを確認できます。同等品はありますか?コンテナがKubernetesクラスタ内で実行されているかどうかを確認するにはどうすればよいですか?

+0

kubernetesのkubectlコマンドラインツールを使うことができると思います。 [セットアップ](https://cloud.google.com/container-engine/docs/before-you-begin)kubectl get podsを実行します。ポッド(コンテナ)のリストが表示されます。 http://kubernetes.io/docs/user-guide/kubectl-cheatsheet/ –

+0

私はGolangアプリをプログラム的に探したい。 – CESCO

+0

kubernetes [client library](https://github.com/kubernetes/kubernetes/tree/release-1.2/pkg/client/)を使用して、コード内のkubernetes apisにアクセスできます。申し訳ありませんが、私は正確なAPI名はわかりませんが、あなたはapi docを読まなければならないと思います。 –

答えて

2

ポッドの仕様でコンテナに環境変数を渡すことができます。 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 
関連する問題