Tanzu CLI를 사용하여 클러스터 Autoscaler 패키지를 설치하고 구성하려면 다음 지침을 참조하십시오.

요구 사항

다음 요구 사항을 준수합니다.
  • 최소 vSphere 버전은 vCenter 및 ESXi 호스트를 포함하여 vSphere 8 U3입니다.
  • 최소 TKr 버전은 vSphere 8의 경우 TKr 1.27.x입니다.
  • TKr의 부 버전과 클러스터 Autoscaler 패키지의 부 버전이 일치해야 합니다.
참고: Autoscaler 패키지 부 버전과 TKr 부 버전 간에는 일대일 관계가 있습니다. 예를 들어 TKr 1.27.11을 사용하는 경우 Autoscaler v1.27.2를 설치해야 합니다. 버전이 일치하지 않으면 패키지 조정이 실패합니다.

vSphere 네임스페이스 구성

TKG 클러스터 프로비저닝을 위한 다음 사전 요구 사항 작업을 완료합니다.

  1. vSphere 8의 경우 vSphere 8 U3 및 TKr 1.27.x로 환경을 설치하거나 업데이트합니다.
  2. 최신 Tanzu Kubernetes 릴리스로 컨텐츠 라이브러리를 생성하거나 업데이트합니다. TKG 서비스 클러스터에 대한 Kubernetes 릴리스 관리의 내용을 참조하십시오.
  3. TKG 클러스터를 호스팅하기 위한 vSphere 네임스페이스를 생성하고 구성합니다. TKG 서비스 클러스터 호스팅을 위한 vSphere 네임스페이스 구성의 내용을 참조하십시오.
  4. vSphere에 대한 Kubernetes CLI 도구를 설치합니다.

    다음 예는 명령줄에서 도구를 설치하는 데 사용할 수 있습니다. 추가 지침은 vSphere에 대한 Kubernetes CLI 도구 설치 항목을 참조하십시오.

    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를 실행하여 설치를 확인합니다.

Autoscaler 주석을 사용하여 TKG 클러스터 생성

지침에 따라 TKG 클러스터를 생성합니다. 추가 지침은 Kubectl을 사용하여 TKG 클러스터를 프로비저닝하기 위한 워크플로 항목을 참조하십시오.

Autoscaler를 사용하려면 여기에 제공된 클러스터 규격 예에 설명된 대로 Autoscaler 레이블 주석으로 클러스터를 구성해야 합니다. 일반 클러스터 프로비저닝과 달리 작업자 노드 복제본 수를 하드 코딩하지 않습니다. Kubernetes에는 Autoscaler 최소 및 최대 크기 주석을 기반으로 복제본에 대한 기본 논리가 기본 제공됩니다. 이는 새 클러스터이므로 최소 크기는 클러스터를 생성하는 데 사용됩니다. 자세한 내용은 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 네임스페이스에서 사용할 수 있는 VM 클래스를 나열합니다.

    대상 vSphere 네임스페이스에 바인딩된 VM 클래스만 사용할 수 있습니다. TKG 서비스 클러스터에서 VM 클래스 사용의 내용을 참조하십시오.

  4. 사용 가능한 영구 볼륨 스토리지 클래스를 나열합니다.
    kubectl describe namespace VSPHERE-NAMESPACE-NAME

    이 명령은 스토리지 클래스를 포함하여 vSphere 네임스페이스에 대한 세부 정보를 반환합니다. kubectl describe storageclasses 명령도 사용 가능한 스토리지 클래스를 반환하지만 vSphere 관리자 권한이 필요합니다.

  5. 사용 가능한 Tanzu Kubernetes 릴리스를 나열합니다.
    kubectl get tkr

    이 명령은 이 vSphere 네임스페이스에서 사용할 수 있는 TKr과 해당 호환성을 반환합니다. TKG 서비스 클러스터에 대한 Kubernetes 릴리스 관리의 내용을 참조하십시오.

  6. 수집한 정보를 사용하여 필요한 클러스터 Autoscaler 구성으로 TKG 클러스터 규격 YAML 파일을 만듭니다.
    • 작업자 nodePools에 대한 *-min-size*-max-size 주석을 사용합니다. 이 예에서 3은 최소값이고 5는 확장 가능한 최대 작업자 노드 수입니다. 기본적으로 클러스터는 작업자 노드 3개를 사용하여 생성됩니다.
    • TKr 및 Autoscaler 패키지에 대해 일치하는 부 버전을 사용합니다.
    • 사용된 클러스터 metadata.namemetadata.namespace 값은 Autoscaler 패키지 기본값과 일치합니다. 클러스터 규격에서 이러한 값을 변경하는 경우 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

Autoscaler 패키지 설치

클러스터 Autoscaler 패키지를 설치합니다. 클러스터 Autoscaler가 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를 사용하여 클러스터 Autoscaler 패키지를 설치합니다.
    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

클러스터 자동 크기 조정 테스트

클러스터 자동 크기 조정을 테스트하려면 애플리케이션을 배포하고, 복제본 수를 늘리고, 추가적인 로드를 처리하기 위해 추가 작업자 노드가 확장되었는지 확인합니다.

클러스터 Autoscaler 테스트의 내용을 참조하십시오.

자동 크기 조정된 클러스터 업그레이드

자동 크기 조정된 클러스터를 업그레이드하려면 먼저 Autoscaler 패키지를 일시 중지해야 합니다.

Tanzu CLI를 사용하여 자동 크기 조정된 클러스터 업그레이드의 내용을 참조하십시오.