このドキュメントでは、Google Distributed Cloud(GDC)エアギャップ Kubernetes クラスタで実行されている既存のステートフル ワークロードを更新する方法について説明します。リソースの使用状況と構成の最適化に基づいてアプリケーションが進化するにつれて、Kubernetes クラスタで基盤となる Pod 仕様を更新して、これらのワークロードの変更を反映する必要があります。ステートフルワークロードの更新の計画の詳細については、 Kubernetes ドキュメントの 更新戦略をご覧ください。
このドキュメントは、組織のアプリケーション ワークロードの更新を担当するアプリケーション オペレーター グループ内のデベロッパーを対象としています。詳細については、 GDC エアギャップ ドキュメントの対象読者をご覧ください。
始める前に
このドキュメントの手順を完了するには、必要な権限をリクエストして環境を準備する必要があります。
IAM ロールをリクエストする
ステートフル ワークロードを更新するために必要な権限を取得するには、特定のロールが必要です。必要なロールは、組織スコープの共有クラスタまたはプロジェクト スコープの標準クラスタのどちらで作業しているかによって異なります。詳細については、 Kubernetes クラスタの構成をご覧ください。
共有クラスタのロール
共有クラスタでワークロードを作成、削除、編集、表示するには、プロジェクト IAM 管理者に Namespace 管理者
(namespace-admin)ロールの付与を依頼してください。このロールは、プロジェクト Namespace
にバインドされます。
標準クラスタのロール
標準クラスタでワークロードを作成、削除、編集、表示するには、プロジェクト IAM 管理者に クラスタ デベロッパー
(cluster-developer)ロールの付与を依頼してください。このロールは、プロジェクト Namespace
にバインドされます。
環境を準備する
API を使用して Kubernetes クラスタ に対してコマンドを実行するには、次のリソースが必要です。
Kubernetes クラスタ名を確認するか、プラットフォーム管理者グループのメンバーにクラスタ名を確認します。
ログインして生成します Kubernetes クラスタの kubeconfig ファイル。
Kubernetes クラスタの kubeconfig パスを使用して、この手順の
KUBERNETES_CLUSTER_KUBECONFIGを置き換えます。
StatefulSet リソースを更新する
StatefulSet を更新するには、新しいマニフェスト ファイルまたは更新されたマニフェスト
ファイルを適用します。これは、スケーリング時やアプリケーションの新しいバージョンの指定など、StatefulSet
にさまざまな変更を加える場合に便利です。
StatefulSet オブジェクトを更新するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
apply -f STATEFULSET_FILE
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG: ステートフル ワークロードを実行しているクラスタの kubeconfig ファイル 。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。標準クラスタの場合は、任意の Namespace を指定できます。STATEFULSET_FILE: 更新されたStatefulSetマニフェスト ファイルの名前。
kubectl apply コマンドは、リソースにマニフェスト ファイルを適用します。指定されたリソースが存在しない場合は、このコマンドによって作成されます。
StatefulSet リソースの更新ロールアウトを検査する
StatefulSet オブジェクトの更新ロールアウトのステータスと履歴に関する詳細情報を確認できます。StatefulSet
オブジェクトのロールアウトを元に戻すこともできます。
ロールアウトを検査する
StatefulSet リソースのロールアウトを検査するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
rollout status statefulset STATEFULSET_NAME
KUBERNETES_CLUSTER_KUBECONFIG: ステートフル ワークロードを実行しているクラスタの kubeconfig ファイル 。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。標準クラスタの場合は、任意の Namespace を指定できます。STATEFULSET_NAME: 更新されたStatefulSetオブジェクトの名前。
ロールアウトの履歴を取得する
StatefulSet リソースのロールアウト履歴を表示するには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
rollout history statefulset STATEFULSET_NAME
KUBERNETES_CLUSTER_KUBECONFIG: ステートフル ワークロードを実行しているクラスタの kubeconfig ファイル 。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。標準クラスタの場合は、任意の Namespace を指定できます。STATEFULSET_NAME: 更新されたStatefulSetオブジェクトの名前。
ロールアウトを元に戻す
ロールアウトを元に戻すには、次のコマンドを実行します。
kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG -n NAMESPACE \
rollout undo statefulset STATEFULSET_NAME
次のように置き換えます。
KUBERNETES_CLUSTER_KUBECONFIG: ステートフル ワークロードを実行しているクラスタの kubeconfig ファイル 。NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。標準クラスタの場合は、任意の Namespace を指定できます。STATEFULSET_NAME:StatefulSetオブジェクトの名前。