2022年4月22日金曜日

Kubernetes python clientでMicrok8sのPodを列挙する

以下のようなKubernetes python clientサンプルプログラムでMicrok8sのPodを列挙することが出来ます。

実行手順

1. 実行環境の構築・設定
以下のページを参照して、実行環境の構築・設定を行います。
Kubernetes python clientでMicrok8sのnamespaceを列挙する

2. サンプルプログラムの作成と実行
以下のサンプルプログラムでPodを列挙することが出来ます。
list-pod.py
from kubernetes import config, client

# configを読み込み
cfg = config.load_kube_config()

namespace = 'default'
# クライアントを作成
with client.ApiClient(cfg) as api_client:
  api = client.CoreV1Api(api_client)
  # podの列挙
  pods = api.list_namespaced_pod(namespace, watch=False)
  for pod in pods.items:
    # print(type(pod))
    print("-----------")
    # pod名とphase
    print("{}:{}".format(pod.metadata.name, pod.status.phase))
    # pod内のコンテナ
    for container in pod.spec.containers:
      # イメージ名
      print("  image: {}".format(container.image))
      # ポート
      if container.ports is not None:
        for port in container.ports:
          print("    container port: {}".format(port.container_port))
          print("    host port: {}".format(port.host_port))
    # restart policy
    print("restart policy: {}".format(pod.spec.restart_policy))
    # スケジューラ名
    print("scheduler_name: {}".format(pod.spec.scheduler_name))
    # サービスアカウント
    print("service_account_name: {}".format(pod.spec.service_account_name))
    # ボリューム
    for volume in pod.spec.volumes:
      # ボリューム名
      print("  volume name: {}".format(volume.name))
      # Persistent Volume Claim
      print("  PVC: {}".format(volume.persistent_volume_claim))

・実行コマンド
python3 list-pod.py

関連情報

・Kubernetes Python Clientのリポジトリ
https://github.com/kubernetes-client/python

0 件のコメント:

コメントを投稿