ステートフル ワークロードをスケーリングする

このドキュメントでは、Google Distributed Cloud(GDC)のエアギャップ Kubernetes クラスタで実行されている既存のステートフル ワークロードをスケーリングする方法について説明します。コンテナ ワークロードの要件の進化に合わせて、ステートフル ワークロードで実行されている Pod をスケーリングする必要があります。

このドキュメントは、組織のアプリケーション ワークロードの管理を担当するアプリケーション オペレーター グループのデベロッパーを対象としています。詳細については、GDC エアギャップ ドキュメントの対象ユーザーをご覧ください。

始める前に

このドキュメントのタスクを完了するには、必要な権限をリクエストして環境を準備する必要があります。

IAM ロールをリクエストする

ステートフル ワークロードをスケーリングするために必要な権限を取得するには、特定のロールが必要です。必要なロールは、組織スコープの共有クラスタとプロジェクト スコープの標準クラスタのどちらで作業しているかによって異なります。詳細については、Kubernetes クラスタ構成をご覧ください。

共有クラスタロール

共有クラスタでワークロードを作成、削除、編集、表示するには、プロジェクト IAM 管理者に Namespace 管理者namespace-admin)ロールの付与を依頼してください。このロールはプロジェクトの名前空間にバインドされます。

標準クラスタロール

標準クラスタでワークロードを作成、削除、編集、表示するには、プロジェクト IAM 管理者に クラスタ デベロッパーcluster-developer)ロールの付与を依頼してください。このロールはプロジェクトの名前空間にバインドされます。

環境を準備する

API を使用して Kubernetes クラスタに対してコマンドを実行するには、次のリソースがあることを確認してください。

  • Kubernetes クラスタ名を確認するか、プラットフォーム管理者グループのメンバーにクラスタ名を確認します。

  • Kubernetes クラスタの kubeconfig ファイルにログインして生成します。

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

StatefulSet リソースをスケーリングする

Kubernetes のスケーリング機能を使用して、StatefulSet リソースで実行されている Pod の量を適切にスケーリングします。

StatefulSet リソースの Pod を手動でスケーリングする

StatefulSet リソースを手動でスケーリングするには、次のコマンドを実行します。

kubectl --kubeconfig KUBERNETES__CLUSTER_KUBECONFIG -n NAMESPACE \
    scale statefulset STATEFULSET_NAME \
    --replicas NUMBER_OF_REPLICAS

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

  • KUBERNETES_CLUSTER_KUBECONFIG: クラスタの kubeconfig ファイル。

  • NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合は、任意の Namespace を指定できます。

  • STATEFULSET_NAME: スケールする StatefulSet オブジェクトの名前。

  • NUMBER_OF_REPLICAS: StatefulSet オブジェクト内の複製された Pod オブジェクトの数。

インプレース更新を行って Pod をスケーリングする

マニフェスト ファイルで StatefulSet リソースの Pod を直接スケーリングするには、次のコマンドを実行します。

kubectl --kubeconfig KUBERNETES__CLUSTER_KUBECONFIG -n NAMESPACE \
    patch statefulsets STATEFULSET_NAME \
    -p '{"spec":{"replicas":NUMBER_OF_REPLICAS}}'

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

  • KUBERNETES__CLUSTER_KUBECONFIG: クラスタの kubeconfig ファイル。

  • NAMESPACE: Namespace。共有クラスタの場合、これはプロジェクト Namespace である必要があります。Standard クラスタの場合は、任意の Namespace を指定できます。

  • STATEFULSET_NAME: スケールする StatefulSet オブジェクトの名前。

  • NUMBER_OF_REPLICAS: StatefulSet オブジェクト内の複製された Pod オブジェクトの数。

次のステップ