Tanzu CLI を使用してクラスタ自動スケーラ パッケージをインストールおよび構成するには、次の手順を参照してください。

要件

次の要件を満たす必要があります。
  • vSphere の最小バージョンは vSphere 8 U3 です(vCenter Server および ESXi ホストを含む)
  • vSphere 8 の場合、TKr の最小バージョンは TKr 1.27.x
  • TKr のマイナー バージョンとクラスタ自動スケーラ パッケージのマイナー バージョンが一致
注: 自動スケーラ パッケージのマイナー バージョンと TKr のマイナー バージョンの間には、1 対 1 の関係があります。たとえば、TKr 1.27.11 を使用している場合は、自動スケーラの v1.27.2 をインストールする必要があります。バージョンが一致しない場合は、パッケージの調整が失敗します。

vSphere 名前空間 の構成

前提条件となる次のタスクを実行して、TKG クラスタをプロビジョニングします。

  1. 環境をインストールするか、vSphere 8 U3 および vSphere 8 用の TKr 1.27.x に更新します。
  2. コンテンツ ライブラリを最新の Tanzu Kubernetes リリース で作成またはアップデートします。TKG サービス クラスタ用 Kubernetes リリースの管理を参照してください。
  3. TKG クラスタをホストするための vSphere 名前空間を作成して構成します。TKG サービス クラスタをホストするための vSphere 名前空間 の構成を参照してください。
  4. 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
  5. kubectlkubectl vsphere を実行してインストールを確認します。

自動スケーラの注釈を使用した TKG クラスタの作成

次の手順に従って、TKG クラスタを作成します。その他のガイダンスについては、Kubectl を使用して TKG クラスタをプロビジョニングするためのワークフローを参照してください。

自動スケーラを使用するには、ここで説明するクラスタ仕様の例に示すように、自動スケーラ ラベルの注釈を使用してクラスタを構成する必要があります。通常のクラスタ プロビジョニングとは異なり、ワーカー ノード レプリカの数はハードコーディングされません。Kubernetes には、自動スケーラの最小サイズと最大サイズの注釈に基づくレプリカのデフォルト ロジックが組み込まれています。これは新しいクラスタであるため、クラスタの作成には最小サイズが使用されます。詳細については、 https://cluster-api.sigs.k8s.io/tasks/automated-machine-management/autoscalingを参照してください。
  1. kubectl を使用して、スーパーバイザー で認証します。
    kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
  2. クラスタをホストするターゲット vSphere 名前空間にコンテキストを切り替えます。
    kubectl config use-context tkgs-cluster-namespace
  3. vSphere 名前空間 で使用可能な仮想マシン クラスを一覧表示します。

    使用できるのは、ターゲット vSphere 名前空間にバインドされている仮想マシン クラスのみです。TKG サービス クラスタでの仮想マシン クラスの使用を参照してください。

  4. 使用可能なパーシステント ボリューム ストレージ クラスを一覧表示します。
    kubectl describe namespace VSPHERE-NAMESPACE-NAME

    このコマンドは、vSphere 名前空間に関する詳細情報を返します。これにはストレージ クラスの情報が含まれます。kubectl describe storageclasses コマンドを実行すると使用可能なストレージ クラスも返されますが、それには vSphere 管理者の権限が必要です。

  5. 使用可能な Tanzu Kubernetes リリース を一覧表示します。
    kubectl get tkr

    このコマンドは、この vSphere 名前空間で使用可能な TKr とその互換性を返します。TKG サービス クラスタ用 Kubernetes リリースの管理を参照してください。

  6. 収集した情報を使用して、必要なクラスタ自動スケーラ構成を含む TKG クラスタ仕様の YAML ファイルを作成します。
    • ワーカー ノード プールの *-min-size 注釈と *-max-size 注釈を使用します。この例では、拡張可能なワーカー ノードの最小数が 3、最大数が 5 です。デフォルトでは、クラスタは 3 つのワーカー ノードで作成されます。
    • TKr と自動スケーラ パッケージには、一致するマイナー バージョンを使用します。
    • 使用されるクラスタの metadata.namemetadata.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
  7. クラスタ仕様を適用します。
    kubectl apply -f cc-autoscaler.yaml
  8. クラスタの作成を確認します。
    kubectl get cluster,vm
  9. クラスタ ノードのバージョンを確認します。
    kubectl get node

TKG クラスタでのパッケージ リポジトリの作成

TKG クラスタがプロビジョニングされたら、Tanzu CLI をインストールしてパッケージ リポジトリを設定します。
  1. Tanzu CLI をインストールします。

    TKG サービス クラスタで使用するための Tanzu CLI のインストールを参照してください。

  2. クラスタにログインします。
    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
  3. パッケージ リポジトリを作成します。
    #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 名前空間にインストールされます。
  1. 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
  2. パッケージ インストールの 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
  3. 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 を使用した自動スケール クラスタのアップグレードを参照してください。