このドキュメントでは、Google Distributed Cloud(GDC)のエアギャップ Kubernetes クラスタで実行されている既存のステートフル ワークロードを検査する方法について説明します。ステートフル ワークロードを使用すると、永続コンテナ ストレージでアプリケーションを実行できます。GDC コンソールまたは kubectl CLI を使用してステートフル ワークロードを表示し、リソース使用量とワークロードの健全性をモニタリングできます。
このドキュメントは、組織のアプリケーション ワークロードの管理を担当するアプリケーション オペレーター グループのデベロッパーを対象としています。詳細については、GDC エアギャップの対象読者のドキュメントをご覧ください。
始める前に
このドキュメントのタスクを完了するには、必要な権限をリクエストして環境を準備する必要があります。
IAM ロールをリクエストする
ステートフル ワークロードを表示して検査するために必要な権限を取得するには、特定のロールが必要です。必要なロールは、組織スコープの共有クラスタとプロジェクト スコープの標準クラスタのどちらで作業しているかによって異なります。詳細については、Kubernetes クラスタの構成をご覧ください。
共有クラスタロール
実行するタスクに基づいて、プロジェクトの Namespace で次のロールを付与するようプロジェクト IAM 管理者に依頼します。
- ワークロード閲覧者(
workload-viewer): 共有クラスタにデプロイされたすべてのワークロードを表示します。 - Namespace 管理者(
namespace-admin): 共有クラスタ プロジェクトの Namespace でワークロードを作成、削除、編集、表示します。
これらのロールはプロジェクト Namespace にバインドされます。
標準クラスタロール
標準クラスタでワークロードを作成、削除、編集、表示するには、プロジェクト IAM 管理者に クラスタ デベロッパー(cluster-developer)ロールの付与を依頼してください。このロールはプロジェクトの名前空間にバインドされます。
環境を準備する
API を使用して Kubernetes クラスタに対してコマンドを実行するには、次のリソースがあることを確認します。
Kubernetes クラスタ名を確認するか、プラットフォーム管理者グループのメンバーにクラスタ名を確認します。
Kubernetes クラスタの kubeconfig ファイルにログインして生成します。
これらの手順では、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
StatefulSet リソースを検査する
StatefulSet リソースのコンポーネントに関する詳細情報をリクエストするには、検査するエンティティを直接ターゲットとするコマンドを実行します。
StatefulSet オブジェクト情報を取得する
StatefulSet オブジェクトの詳細情報を取得するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe statefulset STATEFULSET_NAME
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG:StatefulSetオブジェクトを実行しているクラスタの kubeconfig ファイル。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合は、任意の Namespace を指定できます。STATEFULSET_NAME:StatefulSetオブジェクトの名前。
ライブ構成を YAML 形式で表示する
StatefulSet リソースのライブ構成を YAML 形式で表示するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get statefulset STATEFULSET_NAME -o yaml
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG:StatefulSetオブジェクトを実行しているクラスタの kubeconfig ファイル。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合は、任意の Namespace を指定できます。STATEFULSET_NAME:StatefulSetオブジェクトの名前。
ポッドの一覧表示
StatefulSet によって作成された Pod オブジェクトを一覧表示するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get pods -l app=APP_NAME
このコマンドでは、-l フラグは APP_NAME でラベル付けされたすべての Pod オブジェクトを一覧表示します。
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG:StatefulSetオブジェクトを実行しているクラスタの kubeconfig ファイル。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合は、任意の Namespace を指定できます。APP_NAME:StatefulSetオブジェクトによって管理されるステートフル アプリケーションの名前。
特定の Pod の情報を取得する
クラスタ内の特定の Pod に関する情報を取得するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe pod POD_NAME
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG: Pod を実行しているクラスタの kubeconfig ファイル。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合は、任意の Namespace を指定できます。POD_NAME:StatefulSetオブジェクトによって管理される Pod の名前。
PVC を一覧表示する
クラスタ内の PersistentVolumeClaim(PVC)オブジェクトを一覧表示するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
get pvc
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG: PVC を実行しているクラスタの kubeconfig ファイル。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合は、任意の Namespace を指定できます。
特定の PVC 情報を取得する
クラスタ内の特定の PersistentVolumeClaim(PVC)に関する情報を取得するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe pvc PVC_NAME
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG: PVC を実行しているクラスタの kubeconfig ファイル。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合は、任意の Namespace を指定できます。PVC_NAME:StatefulSetオブジェクト用に構成された PVC の名前。
PV 情報を取得する
クラスタ内の特定の PersistentVolume(PV)に関する情報を取得するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
describe pv PV_NAME
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG: PV を実行しているクラスタの kubeconfig ファイル。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合は、任意の Namespace を指定できます。PV_NAME:StatefulSetオブジェクト用に構成された PV の名前。