ステートフル ワークロードを更新する

このページでは、Google Distributed Cloud(GDC)エアギャップ アプライアンス Kubernetes クラスタで実行されている既存のステートフル ワークロードを更新する方法について説明します。リソース使用量と構成の最適化に基づいてアプリケーションが進化するにつれて、Kubernetes クラスタの基盤となる Pod 仕様を更新して、ワークロードの変更を反映する必要があります。ステートフル ワークロードの更新の計画の詳細については、Kubernetes ドキュメントの更新戦略をご覧ください。

このページは、組織のアプリケーション ワークロードの更新を担当するアプリケーション オペレーター グループ内のデベロッパーを対象としています。

始める前に

事前構成されたベアメタル Kubernetes クラスタに対してコマンドを実行するには、次のリソースがあることを確認してください。

  1. Kubernetes クラスタ名を確認するか、プラットフォーム管理者にクラスタ名を確認します。

  2. まだ Kubernetes クラスタの kubeconfig ファイルがない場合は、ログインして生成します。

  3. これらの手順では、Kubernetes クラスタの kubeconfig パスを使用して CLUSTER_KUBECONFIG を置き換えます。

ステートフル ワークロードを更新するために必要な権限を取得するには、組織の IAM 管理者に、プロジェクトの Namespace で Namespace 管理者ロール(namespace-admin)を付与するよう依頼してください。

StatefulSet リソースを更新する

StatefulSet を更新するには、新しいマニフェスト ファイルまたは更新されたマニフェスト ファイルを適用します。これは、スケーリング時やアプリケーションの新しいバージョンを指定するときに、StatefulSet にさまざまな変更を加える場合に便利です。

StatefulSet オブジェクトを更新するには、次のコマンドを実行します。

kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
    apply -f STATEFULSET_FILE

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

  • CLUSTER_KUBECONFIG: ステートフル ワークロードを実行している Kubernetes クラスタの kubeconfig ファイル。

  • NAMESPACE: プロジェクトの Namespace。

  • STATEFULSET_FILE: 更新された StatefulSet マニフェスト ファイルの名前。

kubectl apply コマンドは、リソースにマニフェスト ファイルを適用します。指定されたリソースが存在しない場合は、このコマンドによって作成されます。

StatefulSet リソースの更新ロールアウトを検査する

StatefulSet オブジェクトのアップデートのロールアウト ステータスと履歴に関する詳細情報を確認できます。StatefulSet オブジェクトのロールアウトを元に戻すこともできます。

ロールアウトを検査する

StatefulSet リソースのロールアウトを検査するには、次のコマンドを実行します。

kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout status statefulset STATEFULSET_NAME
  • CLUSTER_KUBECONFIG: ステートフル ワークロードを実行している Kubernetes クラスタの kubeconfig ファイル。

  • NAMESPACE: プロジェクトの Namespace。

  • STATEFULSET_NAME: 更新された StatefulSet オブジェクトの名前。

ロールアウトの履歴を取得する

StatefulSet リソースのロールアウト履歴を表示するには、次のコマンドを実行します。

kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout history statefulset STATEFULSET_NAME
  • CLUSTER_KUBECONFIG: ステートフル ワークロードを実行している Kubernetes クラスタの kubeconfig ファイル。

  • NAMESPACE: プロジェクトの Namespace。

  • STATEFULSET_NAME: 更新された StatefulSet オブジェクトの名前。

ロールアウトを元に戻す

ロールアウトを取り消すには、次のコマンドを実行します。

kubectl --kubeconfig CLUSTER_KUBECONFIG -n NAMESPACE \
    rollout undo statefulset STATEFULSET_NAME

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

  • CLUSTER_KUBECONFIG: ステートフル ワークロードを実行している Kubernetes クラスタの kubeconfig ファイル。

  • NAMESPACE: プロジェクトの Namespace。

  • STATEFULSET_NAME: StatefulSet オブジェクトの名前。