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