Tanzu CLI を使用してクラスタ自動スケーラ パッケージをインストールおよび構成するには、次の手順を参照してください。
要件
- vSphere の最小バージョンは vSphere 8 U3 です(vCenter Server および ESXi ホストを含む)
- vSphere 8 の場合、TKr の最小バージョンは TKr 1.27.x
- TKr のマイナー バージョンとクラスタ自動スケーラ パッケージのマイナー バージョンが一致
vSphere 名前空間 の構成
前提条件となる次のタスクを実行して、TKG クラスタをプロビジョニングします。
- 環境をインストールするか、vSphere 8 U3 および vSphere 8 用の TKr 1.27.x に更新します。
- コンテンツ ライブラリを最新の Tanzu Kubernetes リリース で作成またはアップデートします。TKG サービス クラスタ用 Kubernetes リリースの管理を参照してください。
- TKG クラスタをホストするための vSphere 名前空間を作成して構成します。TKG サービス クラスタをホストするための vSphere 名前空間 の構成を参照してください。
- vSphere 向け Kubernetes CLI Tools をインストールします。
次の例を使用して、コマンド ラインからツールをインストールできます。その他のガイダンスについては、vSphere 向け Kubernetes CLI Tools のインストールを参照してください。
wget https://SUPERVISOR-IP-or-FQDN/wcp/plugin/linux-amd64/vsphere-plugin.zip unzip vsphere-plugin.zip chmod +x bin/kubectl* mv bin/kubectl* /usr/bin/kubectl vsphere --help rm ~/.kube/config kubectl vsphere login --insecure-skip-tls-verify --server SUPERVISOR-IP-or-FQDN --tanzu-kubernetes-cluster-namespace VSPHERE-NAMESPACE --vsphere-username VSPHERE-USER kubectl config use-context VSPHERE-NAMESPACE
kubectl
とkubectl vsphere
を実行してインストールを確認します。
自動スケーラの注釈を使用した TKG クラスタの作成
次の手順に従って、TKG クラスタを作成します。その他のガイダンスについては、Kubectl を使用して TKG クラスタをプロビジョニングするためのワークフローを参照してください。
- kubectl を使用して、スーパーバイザー で認証します。
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
- クラスタをホストするターゲット vSphere 名前空間にコンテキストを切り替えます。
kubectl config use-context tkgs-cluster-namespace
- vSphere 名前空間 で使用可能な仮想マシン クラスを一覧表示します。
使用できるのは、ターゲット vSphere 名前空間にバインドされている仮想マシン クラスのみです。TKG サービス クラスタでの仮想マシン クラスの使用を参照してください。
- 使用可能なパーシステント ボリューム ストレージ クラスを一覧表示します。
kubectl describe namespace VSPHERE-NAMESPACE-NAME
このコマンドは、vSphere 名前空間に関する詳細情報を返します。これにはストレージ クラスの情報が含まれます。
kubectl describe storageclasses
コマンドを実行すると使用可能なストレージ クラスも返されますが、それには vSphere 管理者の権限が必要です。 - 使用可能な Tanzu Kubernetes リリース を一覧表示します。
kubectl get tkr
このコマンドは、この vSphere 名前空間で使用可能な TKr とその互換性を返します。TKG サービス クラスタ用 Kubernetes リリースの管理を参照してください。
- 収集した情報を使用して、必要なクラスタ自動スケーラ構成を含む TKG クラスタ仕様の YAML ファイルを作成します。
- ワーカー ノード プールの
*-min-size
注釈と*-max-size
注釈を使用します。この例では、拡張可能なワーカー ノードの最小数が 3、最大数が 5 です。デフォルトでは、クラスタは 3 つのワーカー ノードで作成されます。 - TKr と自動スケーラ パッケージには、一致するマイナー バージョンを使用します。
- 使用されるクラスタの
metadata.name
とmetadata.namespace
の値は、自動スケーラ パッケージのデフォルト値と一致しています。クラスタ仕様でこれらの値を変更する場合は、autoscaler-data-values
で変更する必要があります(以下を参照)。
#cc-autoscaler.yaml apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: tkc namespace: cluster spec: clusterNetwork: pods: cidrBlocks: - 192.0.2.0/16 serviceDomain: cluster.local services: cidrBlocks: - 198.51.100.0/12 topology: class: tanzukubernetescluster controlPlane: metadata: {} replicas: 3 variables: - name: storageClasses value: - wcpglobal-storage-profile - name: vmClass value: guaranteed-medium - name: storageClass value: wcpglobal-storage-profile #minor versions must match version: v1.27.11---vmware.1-fips.1-tkg.2 workers: machineDeployments: - class: node-pool metadata: annotations: cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "3" cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "5" name: np-1
- ワーカー ノード プールの
- クラスタ仕様を適用します。
kubectl apply -f cc-autoscaler.yaml
- クラスタの作成を確認します。
kubectl get cluster,vm
- クラスタ ノードのバージョンを確認します。
kubectl get node
TKG クラスタでのパッケージ リポジトリの作成
- Tanzu CLI をインストールします。
TKG サービス クラスタで使用するための Tanzu CLI のインストールを参照してください。
- クラスタにログインします。
rm ~/.kube/config kubectl vsphere login --insecure-skip-tls-verify --server 192.168.0.2 --tanzu-kubernetes-cluster-namespace autoscaler --vsphere-username [email protected] --tanzu-kubernetes-cluster-name cckubectl config use-context cc
- パッケージ リポジトリを作成します。
#Standard package repository URL might change depending on the required cluster autoscaler version tanzu package repository add standard-repo --url projects.registry.vmware.com/tkg/packages/standard/repo:v2024.4.12 -n tkg-system tanzu package available list -n tkg-system tanzu package available get cluster-autoscaler.tanzu.vmware.com -n tkg-system
自動スケーラ パッケージのインストール
kube-system
名前空間にインストールされます。
- Tanzu CLI コマンドを使用して、デフォルトの
values.yaml
を生成します。tanzu package available get cluster-autoscaler.tanzu.vmware.com/1.27.2+vmware.1-tkg.3 -n tkg-system --default-values-file-output values.yaml
- パッケージ インストールの
values.yaml
を更新します。arguments: ignoreDaemonsetsUtilization: true maxNodeProvisionTime: 15m maxNodesTotal: 0 metricsPort: 8085 scaleDownDelayAfterAdd: 10m scaleDownDelayAfterDelete: 10s scaleDownDelayAfterFailure: 3m scaleDownUnneededTime: 10m clusterConfig: clusterName: "tkc" clusterNamespace: "cluster" paused: false
- Tanzu CLI を使用してクラスタ自動スケーラ パッケージをインストールします。
tanzu package install cluster-autoscaler-pkgi -n tkg-system --package cluster-autoscaler.tanzu.vmware.com --version 1.27.2+vmware.1-tkg.3 --values-file values.yaml
クラスタの自動スケーリングのテスト
クラスタの自動スケーリングをテストするには、アプリケーションをデプロイし、レプリカの数を増やして、追加の負荷を処理するための追加のワーカー ノードがスケール アウトされていることを確認します。
クラスタ自動スケーラのテストを参照してください。
自動スケーリングされたクラスタのアップグレード
自動スケーリングされたクラスタをアップグレードするには、まず自動スケーラ パッケージを一時停止する必要があります。
Tanzu CLI を使用した自動スケール クラスタのアップグレードを参照してください。