このドキュメントでは、Google Distributed Cloud(GDC)のエアギャップ Kubernetes クラスタで実行されている既存のステートレス ワークロードをスケーリングする方法について説明します。コンテナ ワークロードの要件の進化に合わせて、ステートレス ワークロードで実行されている Pod をスケーリングする必要があります。
このドキュメントは、組織のアプリケーション ワークロードの管理を担当するアプリケーション オペレーター グループのデベロッパーを対象としています。詳細については、GDC のエアギャップ環境のユーザー グループのドキュメントをご覧ください。
始める前に
このドキュメントのタスクを完了するには、次のリソースとロールが必要です。
Kubernetes クラスタに対してコマンドを実行するには、次のリソースがあることを確認してください。
Kubernetes クラスタ名を確認するか、プラットフォーム管理者グループのメンバーにクラスタ名を確認します。
まだ Kubernetes クラスタの kubeconfig ファイルがない場合は、ログインして生成します。
これらの手順で
KUBERNETES_CLUSTER_KUBECONFIGを置き換えるには、Kubernetes クラスタの kubeconfig パスを使用します。
共有クラスタでステートレス ワークロードをスケーリングするために必要な権限を取得するには、組織の IAM 管理者に、プロジェクトの Namespace で Namespace 管理者ロール(
namespace-admin)を付与するよう依頼してください。標準クラスタでステートレス ワークロードをスケーリングするために必要な権限を取得するには、組織の IAM 管理者に、標準クラスタのクラスタ デベロッパー ロール(
cluster-developer)を付与するよう依頼してください。
Deployment をスケールする
Kubernetes のスケーリング機能を使用して、デプロイで実行されている Pod の量を適切にスケーリングします。
Deployment の Pod を自動スケーリングする
Kubernetes は自動スケーリングを提供し、需要の変化に応じてデプロイを手動で更新する必要をなくします。デプロイの Pod を自動スケーリングする手順は次のとおりです。
水平 Pod オートスケーラーが CPU の割合を適切に測定できるようにするには、デプロイに CPU リソース リクエストを設定します。
デプロイで水平 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 の数の上限。
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オブジェクトの数。