Tanzu CLI를 사용하여 클러스터 Autoscaler 패키지를 설치하고 구성하려면 다음 지침을 참조하십시오.
요구 사항
- 최소 vSphere 버전은 vCenter 및 ESXi 호스트를 포함하여 vSphere 8 U3입니다.
- 최소 TKr 버전은 vSphere 8의 경우 TKr 1.27.x입니다.
- TKr의 부 버전과 클러스터 Autoscaler 패키지의 부 버전이 일치해야 합니다.
vSphere 네임스페이스 구성
TKG 클러스터 프로비저닝을 위한 다음 사전 요구 사항 작업을 완료합니다.
- vSphere 8의 경우 vSphere 8 U3 및 TKr 1.27.x로 환경을 설치하거나 업데이트합니다.
- 최신 Tanzu Kubernetes 릴리스로 컨텐츠 라이브러리를 생성하거나 업데이트합니다. TKG 서비스 클러스터에 대한 Kubernetes 릴리스 관리의 내용을 참조하십시오.
- TKG 클러스터를 호스팅하기 위한 vSphere 네임스페이스를 생성하고 구성합니다. TKG 서비스 클러스터 호스팅을 위한 vSphere 네임스페이스 구성의 내용을 참조하십시오.
- 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
kubectl
및kubectl vsphere
를 실행하여 설치를 확인합니다.
Autoscaler 주석을 사용하여 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 네임스페이스에서 사용할 수 있는 VM 클래스를 나열합니다.
대상 vSphere 네임스페이스에 바인딩된 VM 클래스만 사용할 수 있습니다. TKG 서비스 클러스터에서 VM 클래스 사용의 내용을 참조하십시오.
- 사용 가능한 영구 볼륨 스토리지 클래스를 나열합니다.
kubectl describe namespace VSPHERE-NAMESPACE-NAME
이 명령은 스토리지 클래스를 포함하여 vSphere 네임스페이스에 대한 세부 정보를 반환합니다.
kubectl describe storageclasses
명령도 사용 가능한 스토리지 클래스를 반환하지만 vSphere 관리자 권한이 필요합니다. - 사용 가능한 Tanzu Kubernetes 릴리스를 나열합니다.
kubectl get tkr
이 명령은 이 vSphere 네임스페이스에서 사용할 수 있는 TKr과 해당 호환성을 반환합니다. TKG 서비스 클러스터에 대한 Kubernetes 릴리스 관리의 내용을 참조하십시오.
- 수집한 정보를 사용하여 필요한 클러스터 Autoscaler 구성으로 TKG 클러스터 규격 YAML 파일을 만듭니다.
- 작업자 nodePools에 대한
*-min-size
및*-max-size
주석을 사용합니다. 이 예에서 3은 최소값이고 5는 확장 가능한 최대 작업자 노드 수입니다. 기본적으로 클러스터는 작업자 노드 3개를 사용하여 생성됩니다. - TKr 및 Autoscaler 패키지에 대해 일치하는 부 버전을 사용합니다.
- 사용된 클러스터
metadata.name
및metadata.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
- 작업자 nodePools에 대한
- 클러스터 규격을 적용합니다.
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
Autoscaler 패키지 설치
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를 사용하여 클러스터 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를 사용하여 자동 크기 조정된 클러스터 업그레이드의 내용을 참조하십시오.