このドキュメントでは、Google Distributed Cloud(GDC)エアギャップ Kubernetes クラスタで実行されている既存のステートレス ワークロードを検査する方法について説明します。ステートレス ワークロードを使用すると、データやアプリケーションの状態を保存せずにアプリケーションのデプロイを実行できます。GDC コンソールまたは kubectl CLI を使用してステートレス ワークロードを表示し、リソース使用量とワークロードの健全性をモニタリングできます。
このドキュメントは、組織のアプリケーション ワークロードの管理を担当するアプリケーション オペレーター グループのデベロッパーを対象としています。詳細については、GDC エアギャップ ドキュメントの対象読者をご覧ください。
始める前に
このドキュメントのタスクを完了するには、必要な権限をリクエストして環境を準備する必要があります。
IAM ロールをリクエストする
ステートレス ワークロードを表示して検査するために必要な権限を取得するには、特定のロールが必要です。必要なロールは、組織スコープの共有クラスタとプロジェクト スコープの標準クラスタのどちらで作業しているかによって異なります。詳細については、Kubernetes クラスタの構成をご覧ください。
共有クラスタロール
実行するタスクに基づいて、プロジェクトの名前空間で次のロールを付与するよう IAM プロジェクト管理者に依頼します。
- ワークロード閲覧者(
workload-viewer): 共有クラスタにデプロイされたすべてのワークロードを表示します。 - Namespace 管理者(
namespace-admin): 共有クラスタ プロジェクトの名前空間でワークロードを作成、削除、編集、表示します。
これらのロールは、プロジェクトの Namespace にバインドされます。
標準クラスタロール
標準クラスタでワークロードを作成、削除、編集、表示するには、IAM プロジェクト管理者にクラスタ デベロッパー(cluster-developer)ロールを付与するよう依頼してください。このロールはプロジェクトの名前空間にバインドされます。
環境を準備する
API を使用して Kubernetes クラスタに対してコマンドを実行するには、次のリソースがあることを確認してください。
Kubernetes クラスタ名を確認するか、プラットフォーム管理者グループのメンバーにクラスタ名を確認します。
これらの手順では、Kubernetes クラスタの kubeconfig パスを使用して
KUBERNETES_CLUSTER_KUBECONFIGを置き換えます。
プロジェクトのコンテナ ワークロードを表示する
プロジェクトのコンテナ ワークロードを表示する手順は次のとおりです。
コンソール
ナビゲーション メニューで、[Kubernetes Engine] > [ワークロード] を選択します。
コンテナ ワークロードの詳細(次のようなもの)を表示できます。
- 名前
- 種類
- Pod の数
- Kubernetes クラスタ
- 最終更新日
コンテナ ワークロードは、属する Kubernetes クラスタごとに整理されます。[クラスタ] プルダウンを選択して、クラスタ コンテキストを切り替えます。
kubectl
次のコマンドを実行して、プロジェクト内のすべての Pod を一覧表示します。
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 を指定できます。DEPLOYMENT_NAME:Deploymentオブジェクトの名前。
ライブ構成を YAML 形式で表示する
Deployment オブジェクトのマニフェストを表示するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get deployments DEPLOYMENT_NAME -o yaml
このコマンドは、Deployment オブジェクトのライブ構成を YAML 形式で表示します。
ポッドの一覧表示
Deployment によって作成された Pod オブジェクトを一覧表示するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get pods -l KEY=VALUE
このコマンドで -l フラグを指定すると、指定したクラスタ内の指定した Key-Value ペアラベルを持つすべての Pod オブジェクトが一覧表示されます。
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG: デプロイを実行しているクラスタの kubeconfig ファイル。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクトの名前空間にする必要があります。標準クラスタの場合は、任意の 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 情報を取得する
特定の Pod オブジェクトに関する情報を取得するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe pod POD_NAME
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG: デプロイを実行しているクラスタの kubeconfig ファイル。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクトの名前空間にする必要があります。標準クラスタの場合は、任意の Namespace を指定できます。POD_NAME: Deployment によって管理される Pod の名前。