クーベルネットでコンテナが属するポッドの名前をプログラムで取得する方法はありますか?もしそうなら、どのように?私はfabric8のJavaクライアントを使用していますが、カールか類似のものも同様に問題ありません。Kubernetesでコンテナーが属するポッドの名前をプログラムで取得しますか?
特定のラベルを使用してポッドを見つけたくないことに注意してください。レプリケートコントローラでスケーリングされている場合は、常に正しいポッドが見つからない場合があります。
クーベルネットでコンテナが属するポッドの名前をプログラムで取得する方法はありますか?もしそうなら、どのように?私はfabric8のJavaクライアントを使用していますが、カールか類似のものも同様に問題ありません。Kubernetesでコンテナーが属するポッドの名前をプログラムで取得しますか?
特定のラベルを使用してポッドを見つけたくないことに注意してください。レプリケートコントローラでスケーリングされている場合は、常に正しいポッドが見つからない場合があります。
downward APIを使用して、選択した環境変数にポッド名を入れるようにKubernetesに指示できます。例えば
:
apiVersion: v1
kind: Pod
metadata:
name: dapi-test-pod
spec:
containers:
- name: test-container
image: gcr.io/google_containers/busybox
command: [ "/bin/sh", "-c", "env" ]
env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: MY_POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
restartPolicy: Never
ポッド名は/etc/hostname
に書き込まれていますので、そこから読み取ることができます。私が使用しているJavaでは、System.getenv("HOSTNAME")
を呼び出すことによってホスト名(したがってポッド名)を取得することもできます。
ニース、これについては知りませんでした。 – Johan