このトピックでは、次の方法を使用して、Tanzu Kubernetes Grid (TKG) ワークロード クラスタとスタンドアローン管理クラスタをスケーリングする方法について説明します。
オートスケーラ:スタンドアローン管理クラスタによって展開されるワークロード クラスタの場合、クラスタ オートスケーラを使用して、ワーカー ノードの数を需要に合わせて自動的にスケーリングできます。「クラスタ オートスケーラでのワーカー ノードのスケーリング」を参照してください。
オートスケーラでは、スーパーバイザー クラスタによって展開されたワークロード クラスタをスケーリングすることはできません。
水平方向にスケーリングする:ワークロード クラスタまたはスタンドアローン管理クラスタの場合、制御プレーン ノードとワーカー ノードの数を手動でスケーリングできます。「クラスタの水平方向のスケーリング」を参照してください。
垂直方向にスケーリングする:ワークロード クラスタの場合、制御プレーン ノードとワーカー ノードのサイズを手動で変更できます。「クラスタの垂直方向のスケーリング」を参照してください。
注ノード プール内のノードをスケーリングするには、「異なる仮想マシン タイプのノード プールの管理」の「ノード プールの更新」を参照してください。
単一ノード クラスタを拡張することはできません。
クラスタ オートスケーラは、ワークロード クラスタの要求に応じて Kubernetes クラスタを自動的にスケーリングする Kubernetes プログラムです。クラスタ オートスケーラは、スタンドアローン管理クラスタによって展開されたワークロード クラスタにのみ使用します。
クラスタ オートスケーラの詳細については、GitHub の次のドキュメントを参照してください。
デフォルトでは、クラスタ オートスケーラは Tanzu Kubernetes Grid で無効になっています。ワークロード クラスタでクラスタ オートスケーラを有効にするには、ENABLE_AUTOSCALER
を true
に設定し、クラスタ構成ファイルで、または環境変数として AUTOSCALER_
オプションを設定してから、tanzu cluster create --file
を実行します。
クラスタ構成ファイル内のクラスタ オートスケーラ構成変数はそれぞれ、クラスタ オートスケーラ ツールのパラメータに対応します。これらの変数とそのデフォルト値のリストについては、『構成ファイル変数リファレンス』の「クラスタ オートスケーラ」を参照してください。
AUTOSCALER_*_SIZE
設定では、クラスタ内のワーカー ノードの数が制限されますが、AUTOSCALER_MAX_NODES_TOTAL
では、ワーカーと制御プレーンの両方の全ノード数が制限されます。
クラスタ内のワーカー ノードの数に応じて、AUTOSCALER_*_SIZE
値を設定します。
dev
クラスタなど、単一のワーカー ノードを持つクラスタの場合は、AUTOSCALER_MIN_SIZE_0
と AUTOSCALER_MAX_SIZE_0
を設定します。prod
クラスタなど、複数のワーカー ノードを持つクラスタの場合は、次のように設定します。
AUTOSCALER_MIN_SIZE_0
と AUTOSCALER_MAX_SIZE_0
AUTOSCALER_MIN_SIZE_1
と AUTOSCALER_MAX_SIZE_1
AUTOSCALER_MIN_SIZE_2
と AUTOSCALER_MAX_SIZE_2
次に、クラスタ構成ファイルのクラスタ オートスケーラ設定の例を示します。クラスタの展開後にこれらの値を変更することはできません。
#! ---------------------------------------------------------------------
#! Autoscaler related configuration
#! ---------------------------------------------------------------------
ENABLE_AUTOSCALER: false
AUTOSCALER_MAX_NODES_TOTAL: "0"
AUTOSCALER_SCALE_DOWN_DELAY_AFTER_ADD: "10m"
AUTOSCALER_SCALE_DOWN_DELAY_AFTER_DELETE: "10s"
AUTOSCALER_SCALE_DOWN_DELAY_AFTER_FAILURE: "3m"
AUTOSCALER_SCALE_DOWN_UNNEEDED_TIME: "10m"
AUTOSCALER_MAX_NODE_PROVISION_TIME: "15m"
AUTOSCALER_MIN_SIZE_0:
AUTOSCALER_MAX_SIZE_0:
AUTOSCALER_MIN_SIZE_1:
AUTOSCALER_MAX_SIZE_1:
AUTOSCALER_MIN_SIZE_2:
AUTOSCALER_MAX_SIZE_2:
クラスタ オートスケーラを有効にして作成するワークロード クラスタごとに、Tanzu Kubernetes Grid によって管理クラスタにクラスタ オートスケーラ展開が作成されます。クラスタ オートスケーラを無効にするには、ワークロード クラスタに関連付けられているクラスタ オートスケーラ展開を削除します。
TKG クラスタは、クラスタ タイプに応じて 2 つの方法で水平方向にスケーリングできます。
replicas
設定を変更します。Tanzu CLI を使用してワークロード クラスタまたはスタンドアローン管理クラスタを水平方向にスケーリングするには、tanzu cluster scale
コマンドを実行します。
重要Tanzu Kubernetes Grid 操作の実行中は、コンテキストを変更したり、
.kube-tkg/config
ファイルを編集したりしないでください。
--controlplane-machine-count
および --worker-machine-count
オプションは、それぞれ制御プレーン ノードとワーカー ノードの新しい数を設定します。例:
クラスタを 5 台の制御プレーン ノードと 10 台のワーカー ノードにスケーリングするには:
tanzu cluster scale MY-CLUSTER --controlplane-machine-count 5 --worker-machine-count 10
--controlplane-machine-count 1
を使用してクラスタを展開し、3 台の制御プレーン ノードにスケールアップすると、Tanzu Kubernetes Grid は制御プレーン上でスタック HA を自動的に有効にします。
クラスタが default
以外の名前空間で実行されている場合は、--namespace
オプションを含める必要があります。
tanzu cluster scale MY-CLUSTER --controlplane-machine-count 5 --worker-machine-count 10 --namespace=MY-NAMESPACE
スタンドアローン管理クラスタを使用する vSphere:スタンドアローン管理クラスタを使用して展開された vSphere でクラスタのノード数を変更した後、追加または削除されたノードの IP アドレスの DHCP 予約を保持または解放する必要があります。これらの予約を手動で変更するには、「ノードの DHCP 予約とエンドポイント DNS レコードの構成(vSphere のみ)」を参照してください。DHCP 予約の構成方法については、DHCP サーバのドキュメントを参照してください。
スーパーバイザー クラスタを使用する vSphere:vSphere with Tanzu で実行されるクラスタで実行できる制御プレーン ノードは、1 台または 3 台のみとなります。なお、制御プレーン ノードの数を 1 台から 3 台にスケールアップすることはできますが、3 台から 1 台にスケールダウンすることはできません。
ワークロード クラスタを垂直方向にスケーリングする手順は、クラスタ タイプによって異なります。
『The Cluster API Book』の「インフラストラクチャ マシン テンプレートの更新 (Updating Infrastructure Machine Templates)」の手順に従って、クラスタのマシン テンプレートを変更します。
この手順では、kubectl get
コマンドを使用して、クラスタの既存のマシン テンプレートをダウンロードします。これは、次のように構成できます。
kubectl get MACHINE-TEMPLATE-TYPE MACHINE-TEMPLATE-NAME -o yaml
ここで、
MACHINE-TEMPLATE-TYPE
は次のとおりです。
VsphereMachineTemplate
AWSMachineTemplate
AzureMachineTemplate
MACHINE-TEMPLATE-NAME
は、スケーリングするクラスタ ノードのマシン テンプレートの名前で、次の形式になります。
CLUSTER-NAME-control-plane
CLUSTER-NAME-worker
例:
kubectl get VsphereMachineTemplate monitoring-cluster-worker -o yaml
クラスベースのクラスタを垂直方向にスケーリングするには、以下の「クラスベースのクラスタのスケーリング」の説明に従って、クラスタ定義の machine
設定を変更します。
クラスベースのクラスタを水平方向または垂直方向にスケーリングするには、topology
構成を使用します。
次のように kubectl
を管理クラスタのコンテキストに設定します。
kubectl config use-context management-cluster@admin
kubectl edit cluster CLUSTER-NAME
を実行し、controlPlane
および worker
で topology
ブロックの設定を編集します。
水平方向にスケーリングするには、replicas
設定を変更します。- 垂直方向にスケーリングするには、machine
の設定を変更します。
例:
- name: controlPlane
value:
replicas: 3
machine:
diskGiB: 20
memoryMiB: 8192
numCPUs: 4
- name: worker
value:
replicas: 5
machine:
diskGiB: 20
memoryMiB: 8192
numCPUs: 4