ステートレス ワークロードを検査する

このドキュメントでは、Google Distributed Cloud(GDC)エアギャップ Kubernetes クラスタで実行されている既存のステートレス ワークロードを検査する方法について説明します。ステートレス ワークロードを使用すると、データやアプリケーションの状態を保存せずにアプリケーションのデプロイを実行できます。GDC コンソールまたは kubectl CLI を使用してステートレス ワークロードを表示し、リソース使用量とワークロードの健全性をモニタリングできます。

このドキュメントは、組織のアプリケーション ワークロードの管理を担当するアプリケーション オペレーター グループのデベロッパーを対象としています。詳細については、 GDC エアギャップ ドキュメントの対象読者をご覧ください。

始める前に

このドキュメントの手順を完了するには、必要な権限をリクエストして環境を準備する必要があります。

IAM ロールをリクエストする

ステートレス ワークロードを表示して検査するために必要な権限を取得するには、特定のロールが必要です。必要なロールは、組織スコープの共有クラスタまたはプロジェクト スコープの Standard クラスタのどちらで作業しているかによって異なります。 詳細については、 Kubernetes クラスタの構成をご覧ください。

共有クラスタのロール

実行するタスクに基づいて、プロジェクトの IAM 管理者にプロジェクト Namespace で次のロールを付与するよう依頼します。

  • ワークロード閲覧者workload-viewer): 共有クラスタにデプロイされたすべてのワークロードを表示します。
  • Namespace 管理者namespace-admin): 共有クラスタ プロジェクト Namespace でワークロードを作成、削除、編集、表示します。

これらのロールはプロジェクト Namespace にバインドされます。

Standard クラスタのロール

Standard クラスタでワークロードを作成、削除、編集、表示するには、プロジェクトの IAM 管理者にクラスタ デベロッパーcluster-developer)ロールを付与するよう依頼します。このロールはプロジェクト Namespace にバインドされます。

環境を準備する

API を使用して Kubernetes クラスタ に対してコマンドを実行するには、次のリソースが必要です。

  • Kubernetes クラスタ名を確認するか、プラットフォーム管理者グループのメンバーにクラスタ名を確認します。

  • ログインして生成します Kubernetes クラスタの kubeconfig ファイル。

  • Kubernetes クラスタの kubeconfig パスを使用して、この手順の KUBERNETES_CLUSTER_KUBECONFIG を置き換えます。

プロジェクトのコンテナ ワークロードを表示する

プロジェクトのコンテナ ワークロードを表示するには、次の操作を行います。

コンソール

  • ナビゲーション メニューで、[Kubernetes Engine] > [ワークロード] を選択します。

    コンテナ ワークロードの詳細(次のようなもの)を表示できます。

    • 名前
    • タイプ
    • ポッド数
    • Kubernetes クラスタ
    • 最終更新日

    コンテナ ワークロードは、属する Kubernetes クラスタごとに整理されます。[クラスタ] プルダウンを選択して、クラスタ コンテキストを切り替えます。

kubectl

  • 次のコマンドを実行して、プロジェクト内のすべてのポッドを一覧表示します。

    kubectl get pods -n PROJECT_NAMESPACE
    

    出力は次のようになります。

    NAME                        READY   STATUS    RESTARTS   AGE
    nginx-workload-ah-aa-1228   1/1     Running   0          12h
    nginx-workload-ah-ab-6784   1/1     Running   0          11h
    nginx-workload-ah-ac-0045   1/1     Running   0          12h
    

Deployment を検査する

Deployment リソースのコンポーネントに関する詳細情報をリクエストするには、検査するエンティティを直接ターゲットとするコマンドを実行します。

Deployment オブジェクトの情報を取得する

Deployment オブジェクトの詳細情報を取得するには、次のコマンドを実行します。

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe deployment DEPLOYMENT_NAME

次のように置き換えます。

  • KUBERNETES_CLUSTER_KUBECONFIG: デプロイを実行しているクラスタの kubeconfig ファイル。

  • NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合、任意の Namespace を指定できます。

  • DEPLOYMENT_NAME: Deployment オブジェクトの名前。

ライブ構成を YAML 形式で表示する

Deployment オブジェクトのマニフェストを表示するには、次のコマンドを実行します。

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get deployments DEPLOYMENT_NAME -o yaml

このコマンドは、Deployment オブジェクトのライブ構成を YAML 形式で表示します。

ポッドの一覧表示

デプロイによって作成された Pod オブジェクトを一覧表示するには、次のコマンドを実行します。

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    get pods -l KEY=VALUE

このコマンドで -l フラグを指定すると、指定したクラスタで指定した Key-Value ペアのラベルを持つすべての Pod オブジェクトが一覧表示されます。

次のように置き換えます。

  • KUBERNETES_CLUSTER_KUBECONFIG: デプロイを実行しているクラスタの kubeconfig ファイル。

  • NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合、任意の Namespace を指定できます。

  • KEY: デプロイで設定された Key-Value ペアのラベルのキー。たとえば、.template.metadata.labels フィールドに app: myapp ラベルが構成されている場合、キーは app です。

  • VALUE: デプロイで設定された Key-Value ペアのラベルの値。たとえば、.template.metadata.labels フィールドに app: myapp ラベルが構成されている場合、値は my-app です。

たとえば、Deployment オブジェクトに app: my-app というラベルを付けた場合、そのラベルが付いた Pod オブジェクトを表示するには、次のコマンドを実行します。

kubectl --kubeconfig /tmp/kubeconfig.yaml -n my-namespace \
    get pods -l app=my-app

特定のポッド情報を取得する

特定の Pod オブジェクトに関する情報を取得するには、次のコマンドを実行します。

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
    describe pod POD_NAME

次のように置き換えます。

  • KUBERNETES_CLUSTER_KUBECONFIG: デプロイを実行しているクラスタの kubeconfig ファイル。

  • NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合、任意の Namespace を指定できます。

  • POD_NAME: デプロイによって管理されるポッドの名前。

次のステップ