ノード数を変更するか、ノードをホストする仮想マシン クラスを垂直方向に変更することで、Tanzu Kubernetes クラスタを水平方向にスケーリングできます。
サポートされているスケーリング操作
ノード | 水平方向のスケール アウト | 水平方向のスケール イン | 垂直方向のスケーリング |
---|---|---|---|
制御プレーン | はい | なし | はい |
ワーカー | はい | はい | はい |
- クラスタ ノードを垂直方向にスケーリングするときに、使用可能なリソースが不足していると、ノード上でワークロードを実行できなくなる可能性があります。このため、水平方向にスケーリングする方法が推奨されることがあります。
- 仮想マシン クラスは変更できません。Tanzu Kubernetes クラスタで使用される仮想マシン クラスを編集した後に、このクラスタをスケール アウトした場合、新しいクラスタ ノードは更新されたクラス定義を使用しますが、既存のクラスタ ノードは初期のクラス定義を引き続き使用するため、不一致が生じます。Tanzu Kubernetes クラスタの仮想マシンのクラスを参照してください。
スケーリングの前提条件:Kubectl 編集の構成
Tanzu Kubernetes クラスタを拡張するには、kubectl edit tanzukubernetescluster/CLUSTER-NAME
コマンドを使用してクラスタ マニフェストを更新します。kubectl edit コマンドを実行すると、KUBE_EDITOR または EDITOR の環境変数によって定義されたテキスト エディタ内にクラスタ マニフェストが開きます。環境変数を設定する手順については、Kubectl のデフォルトのテキスト エディタの指定を参照してください。
kubectl
から編集内容が正常に記録されたことが報告され、この変更内容を使用してクラスタが更新されます。
kubectl edit tanzukubernetescluster/tkgs-cluster-1 tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
kubectl edit tanzukubernetescluster/tkgs-cluster-1 Edit cancelled, no changes made.
制御プレーンのスケール アウト
- スーパーバイザー クラスタ で認証します。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Tanzu Kubernetes クラスタが実行されている vSphere 名前空間 にコンテキストを切り替えます。
kubectl config use-context tkgs-cluster-ns
- この名前空間で実行されている Kubernetes クラスタを一覧表示します。
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- ターゲット クラスタで実行されているノードの数を取得します。
kubectl get tanzukubernetescluster tkgs-cluster-1
たとえば、次のクラスタには、1 台の制御プレーン ノードと、3 台のワーカー ノードが含まれています。NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 1 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
kubectl edit
コマンドを使用して、編集するクラスタ マニフェストをロードします。kubectl edit tanzukubernetescluster/tkgs-cluster-1
クラスタ マニフェストは、KUBE_EDITOR または EDITOR 環境変数によって定義されたテキスト エディタで開かれます。
spec.topology.controlPlane.count
パラメータを特定し、ノードの数を 1 から 3 に増やします。... controlPlane: count: 1 ...
... ControlPlane: count: 3 ...
- 変更を適用するには、テキスト エディタでこのファイルを保存します。キャンセルするには、保存せずにエディタを閉じます。
ファイルを保存すると、kubectl によって変更がクラスタに適用されます。バックグラウンドでは、スーパーバイザー クラスタ の 仮想マシン サービス によって新しいワーカー ノードがプロビジョニングされます。
- 新しいノードが追加されていることを確認します。
kubectl get tanzukubernetescluster tkgs-cluster-1
スケール アウト制御プレーンのノード数が 3 になりました。NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
ワーカー ノードのスケール アウト
kubectl を使用してワーカー ノードの数を増やすことで、Tanzu Kubernetes クラスタをスケール アウトできます。
- スーパーバイザー クラスタ で認証します。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Tanzu Kubernetes クラスタが実行されている vSphere 名前空間 にコンテキストを切り替えます。
kubectl config use-context tkgs-cluster-ns
- この名前空間で実行されている Kubernetes クラスタを一覧表示します。
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- ターゲット クラスタで実行されているノードの数を取得します。
kubectl get tanzukubernetescluster tkgs-cluster-1
たとえば、次のクラスタには、3 台の制御プレーン ノードと、3 台のワーカー ノードが含まれています。NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
kubectl edit
コマンドを使用して、編集するクラスタ マニフェストをロードします。kubectl edit tanzukubernetescluster/tkgs-cluster-1
クラスタ マニフェストは、KUBE_EDITOR または EDITOR 環境変数によって定義されたテキスト エディタで開かれます。
spec.topology.workers.count
パラメータを特定し、ノードの数を増やします。... workers: count: 3 ...
... workers: count: 4 ...
- 変更を適用するには、テキスト エディタでこのファイルを保存します。キャンセルするには、保存せずにエディタを閉じます。
ファイルを保存すると、kubectl によって変更がクラスタに適用されます。バックグラウンドでは、スーパーバイザー クラスタ の 仮想マシン サービス によって新しいワーカー ノードがプロビジョニングされます。
- 新しいワーカー ノードが追加されていることを確認します。
kubectl get tanzukubernetescluster tkgs-cluster-1
スケール アウト後、クラスタ内のワーカー ノード数は 4 になります。NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 4 v1.18.5+vmware.1-tkg.1.886c781 1d running
ワーカー ノードのスケール イン
ワーカー ノードの数を減らすことで、Tanzu Kubernetes クラスタをスケール インできます。制御プレーンのスケーリングはサポートされていません。
- スーパーバイザー クラスタ で認証します。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Tanzu Kubernetes クラスタが実行されている vSphere 名前空間 にコンテキストを切り替えます。
kubectl config use-context tkgs-cluster-ns
- この名前空間で実行されている Kubernetes クラスタを一覧表示します。
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- ターゲット クラスタで実行されているノードの数を取得します。
kubectl get tanzukubernetescluster tkgs-cluster-1
たとえば、次のクラスタには、3 台の制御プレーン ノードと、3 台のワーカー ノードが含まれています。NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 4 v1.18.5+vmware.1-tkg.1.886c781 1d running
kubectl edit
コマンドを使用して、編集するクラスタ マニフェストをロードします。kubectl edit tanzukubernetescluster/tkgs-cluster-1
クラスタ マニフェストは、KUBE_EDITOR または EDITOR 環境変数によって定義されたテキスト エディタで開かれます。
spec.topology.workers.count
パラメータを特定し、ノードの数を増やします。... workers: count: 4 ...
... workers: count: 2 ...
- 変更を適用するには、テキスト エディタでこのファイルを保存します。キャンセルするには、保存せずにエディタを閉じます。
ファイルを保存すると、kubectl によって変更がクラスタに適用されます。バックグラウンドでは、スーパーバイザー クラスタ の 仮想マシン サービス によって新しいワーカー ノードがプロビジョニングされます。
- ワーカー ノードが削除されたことを確認します。
kubectl get tanzukubernetescluster tkgs-cluster-1
スケール イン後、クラスタ内のワーカー ノード数は 2 になります。NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 2 v1.18.5+vmware.1-tkg.1.886c781 1d running
クラスタの垂直方向のスケーリング
クラスタ ノードのホストに使用されている仮想マシンのクラスを変更することで、Tanzu Kubernetes クラスタを垂直方向にスケーリングできます。垂直方向のスケーリングは、制御プレーンノードとワーカー ノードの両方でサポートされています。
Tanzu Kubernetes Grid サービス は、サービスに組み込まれているローリング アップデート メカニズムを使用して、クラスタ ノードの垂直方向のスケーリングをサポートします。VirtualMachineClass
の定義を変更すると、この新しいクラスを使用して新しいノードがロール アウトされて、古いノードがスピン ダウンされます。Tanzu Kubernetes クラスタの更新を参照してください。
- スーパーバイザー クラスタ で認証します。
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Tanzu Kubernetes クラスタが実行されている vSphere 名前空間 にコンテキストを切り替えます。
kubectl config use-context tkgs-cluster-ns
- この名前空間で実行されている Kubernetes クラスタを一覧表示します。
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- ターゲット Tanzu Kubernetes クラスタを記述し、仮想マシンのクラスを確認します。
kubectl describe tanzukubernetescluster tkgs-cluster-2
たとえば、次のクラスタでは best-effort-small 型の仮想マシン クラスが使用されています。
Spec: ... Topology: Control Plane: Class: best-effort-small ... Workers: Class: best-effort-small ...
- 使用可能な仮想マシン クラスを一覧表示して、記述します。
kubectl get virtualmachineclassbinding
kubectl describe virtualmachineclassbinding
- ターゲット クラスタのマニフェスト開いて編集します。
kubectl edit tanzukubernetescluster/tkgs-cluster-2
クラスタ マニフェストは、KUBE_EDITOR または EDITOR 環境変数によって定義されたテキスト エディタで開かれます。
- 仮想マシン クラスを変更して、マニフェストを編集します。
たとえば、制御プレーン ノードとワーカー ノードに
guaranteed-xlarge
仮想マシン クラスを使用するように、クラスタ マニフェストを編集します。spec: topology: controlPlane: class: guaranteed-xlarge ... workers: class: guaranteed-xlarge ...
- 変更を適用するには、テキスト エディタでこのファイルを保存します。キャンセルするには、保存せずにエディタを閉じます。
ファイルを保存すると、kubectl によって変更がクラスタに適用されます。Tanzu Kubernetes Grid サービス はバックグラウンドで新しいノードをプロビジョニングし、古いノードを削除します。ローリング アップデート プロセスの説明については、Tanzu Kubernetes Grid サービス クラスタの更新についてを参照してください。
- クラスタが更新されていることを確認します。
kubectl get tanzukubernetescluster NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.c40d30d 21h updating