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

このドキュメントでは、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 を置き換えます。

Deployment をスケールする

Kubernetes のスケーリング機能を使用して、デプロイで実行されている Pod の数を適切にスケーリングします。

Deployment の Pod を自動スケーリングする

Kubernetes は、需要の変化に応じてデプロイを手動で更新する必要がないように、自動スケーリングを提供します。デプロイの Pod を自動スケーリングする手順は次のとおりです。

  1. 水平 Pod オートスケーラーが CPU 使用率を適切に測定できるようにするには、Deployment で CPU リソース リクエストを設定します。

  2. Deployment で水平 Pod 自動スケーラーを設定します。

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        -n NAMESPACE \
        autoscale deployment DEPLOYMENT_NAME \
        --cpu-percent=CPU_PERCENT \
        --min=MIN_NUMBER_REPLICAS \
        --max=MAX_NUMBER_REPLICAS
    

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

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

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

    • DEPLOYMENT_NAME: 自動スケーリングするデプロイの名前。

    • CPU_PERCENT: すべての Pod でリクエストする平均 CPU 使用率の目標値(パーセント)。

    • MIN_NUMBER_REPLICAS: オートスケーラーがプロビジョニングできる Pod 数の下限。

    • MAX_NUMBER_REPLICAS: オートスケーラーがプロビジョニングできる Pod の数の上限。

  3. HorizontalPodAutoscaler の現在のステータスを確認します。

    kubectl get hpa
    

    出力は次のようになります。

    NAME              REFERENCE                          TARGET    MINPODS   MAXPODS   REPLICAS   AGE
    DEPLOYMENT_NAME   Deployment/DEPLOYMENT_NAME/scale   0% / 50%  1         10        1          18s
    

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

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

kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
    -n NAMESPACE \
    scale deployment DEPLOYMENT_NAME \
    --replicas NUMBER_OF_REPLICAS

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

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

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

  • DEPLOYMENT_NAME: 自動スケーリングするデプロイの名前。

  • DEPLOYMENT_NAME: デプロイ内の複製された Pod オブジェクトの数。

次のステップ