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