이 워크플로에 따라 kubectl 명령 및 YAML에 정의된 클러스터 규격을 사용하여 TKG 서비스 클러스터를 선언적으로 프로비저닝합니다.
이 워크플로는 kubectl 및 YAML을 사용하여 선언적으로 TKG 클러스터 프로비저닝을 지원합니다.
사전 요구 사항
프로비저닝 워크플로를 시작하기 전에 다음 사전 요구 사항을 확인하거나 완료하십시오.
- 최신 감독자 버전으로 환경을 업데이트하거나 설치합니다. TKG 서비스 클러스터 실행의 내용을 참조하십시오.
- 최신 Tanzu Kubernetes 릴리스로 컨텐츠 라이브러리를 생성하거나 업데이트합니다. TKG 서비스 클러스터에 대한 Kubernetes 릴리스 관리의 내용을 참조하십시오.
- TKG 클러스터를 호스팅하기 위한 vSphere 네임스페이스를 생성하고 구성합니다. TKG 서비스 클러스터 호스팅을 위한 vSphere 네임스페이스 구성의 내용을 참조하십시오.
프로시저
- vSphere에 대한 Kubernetes CLI 도구를 설치합니다.
- kubectl을 사용하여 감독자에서 인증합니다.
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
참고: 감독자에 대한 FQDN은 사용하도록 설정된 경우에만 사용할 수 있습니다. 자세한 내용은 감독자 구성 설명서를 참조하십시오. - 감독자에 성공적으로 로그인되었는지 확인합니다.
다음과 유사한 메시지가 표시됩니다.
Logged in successfully. You have access to the following contexts: 192.197.2.65 tkg2-cluster-namespace
여기서192.197.2.65
는 감독자 컨텍스트이고tkg2-cluster-namespace
는 TKG 클러스터를 프로비저닝할 vSphere 네임스페이스의 컨텍스트입니다. - 대상 vSphere 네임스페이스가 현재 컨텍스트인지 확인합니다.
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE 192.197.2.65 192.197.2.65 wcp:10.197.154.65:[email protected] * tkg2-cluster-namespace 10.197.154.65 wcp:10.197.154.65:[email protected] tkg2-cluster-namespace
대상 vSphere 네임스페이스가 현재 컨텍스트가 아니면 해당 컨텍스트로 전환합니다.kubectl config use-context tkg2-cluster-namespace
- vSphere 네임스페이스에서 사용할 수 있는 VM 클래스를 나열합니다.
kubectl get virtualmachineclass
대상 네임스페이스에 바인딩된 VM 클래스만 사용할 수 있습니다. VM 클래스가 표시되지 않으면 기본 VM 클래스가 vSphere 네임스페이스와 연결되어 있는지 확인합니다. VM 클래스 오류 문제 해결 항목도 참조하십시오. - 사용 가능한 영구 볼륨 스토리지 클래스를 가져옵니다.
kubectl describe namespace VSPHERE-NAMESPACE-NAME
이 명령은tkg2-storage-policy.storageclass.storage.k8s.io/requests.storage
형식의 스토리지 클래스를 포함하여 네임스페이스에 대한 세부 정보를 반환합니다. 문자열의 첫 번째 토큰은 스토리지 클래스 이름입니다. 이 예시에서는tkg2-storage-policy
입니다.kubectl describe storageclasses
명령도 사용 가능한 스토리지 클래스를 반환하지만 vSphere 관리자 권한이 필요합니다. - 사용 가능한 Tanzu Kubernetes 릴리스를 나열합니다.
다음 명령 중 하나를 사용하여 이 작업을 수행할 수 있습니다.
kubectl get tkr
kubectl get tanzukubernetesreleases
이 명령은 이 vSphere 네임스페이스에서 사용 가능한 TKR을 반환하고 배포하는 감독자와의 호환성을 보여줍니다. 이 명령을 통해 반환된 릴리스만 사용할 수 있습니다. 릴리스 또는 원하는 릴리스가 표시되지 않으면 다음을 수행했는지 확인하십시오. a) TKR 컨텐츠 라이브러리를 생성했습니다. b) 컨텐츠 라이브러리를 원하는 OVA 파일과 동기화했습니다. c) 컨텐츠 라이브러리를 TKG 클러스터를 프로비저닝하는 vSphere 네임스페이스와 연결했습니다. - TKG 클러스터를 프로비저닝하기 위한 YAML 파일을 작성합니다.
- 생성할 클러스터 유형을 결정하고 해당 API 및 기능을 검토합니다.
- TanzuKubernetesCluster: TanzuKubernetesCluster v1alpha3 API 사용
- 클러스터: 클러스터 v1beta1 API 사용
- 클러스터 프로비저닝을 위한 예시 YAML 중 하나로 시작합니다.
- YAML 파일을
tkg2-cluster-1.yaml
또는 이와 유사하게 저장합니다. - 앞의 명령 출력에서 수집한 다음을 비롯한 정보를 사용하여 YAML을 채웁니다.
- 클러스터의 이름(예:
tkg2-cluster-1
) - 대상 vSphere 네임스페이스
- 바인딩된 VM 클래스(예:
guaranteed-medium
) - 클러스터 노드 및 영구 볼륨에 대한 스토리지 클래스
- 제어부 및 작업자 노드(복제본) 수
- TKR NAME 문자열로 지정된 Tanzu Kubernetes 릴리스(예:
v1.25.7+vmware.3-fips.1-tkg.1
)
- 클러스터의 이름(예:
- 필요에 맞게 TGK 클러스터 YAML을 사용자 지정합니다.
- 변동률이 높은
containerd
와 같은 구성 요소에 대해 별도의 볼륨 추가 - 클러스터 노드 및 영구 볼륨에 대한 기본 영구 스토리지 클래스 지정
- CNI, 포드 및 서비스 CIDR을 포함한 클러스터 네트워킹 사용자 지정
- 변동률이 높은
- YAML 구문 검사기를 사용하여 YAML이 유효한지 확인합니다.
이 단계의 결과는 TKG 클러스터를 프로비저닝하기에 유효한 YAML입니다. - 생성할 클러스터 유형을 결정하고 해당 API 및 기능을 검토합니다.
- 다음 명령을 실행하여 TKG 클러스터를 프로비저닝합니다.
kubectl apply -f tkg2-cluster-1.yaml
예상 결과:tanzukubernetescluster.run.tanzu.vmware.com/tkg2-cluster-1 created
- TKG 클러스터의 프로비저닝을 모니터링합니다.
kubectl get tanzukubernetesclusters
kubectl get tkc
v1beta1 API를 사용하여 클러스터를 생성하는 경우:kubectl get cluster
처음에는 READY 상태가 False입니다. 클러스터가 프로비저닝되고 있기 때문입니다. 몇 분 후에 True가 됩니다.NAME CONTROL PLANE WORKER TKR NAME AGE READY TKR COMPATIBLE UPDATES AVAILABLE tkg2-cluster-1 3 6 v1.25.7+vmware.3-fips.1-tkg.1 49m True True
추가 명령을 실행하여 클러스터에 대한 세부 정보를 봅니다.kubectl get tanzukubernetescluster,cluster,virtualmachinesetresourcepolicy,virtualmachineservice,kubeadmcontrolplane,machinedeployment,machine,virtualmachine
kubectl describe tanzukubernetescluster tkg2-cluster-1
- vSphere Client를 사용하여 클러스터 노드의 배포를 모니터링합니다.
호스트 및 클러스터에 대한 vSphere 인벤토리에서 대상 vSphere 네임스페이스에 배포된 클러스터 노드 VM을 볼 수 있습니다.
- 모든 TKG 클러스터 노드가 [준비] 상태가 되면 kubectl용 vSphere 플러그인을 사용하여 클러스터에 로그인합니다.
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN \ --vsphere-username USERNAME \ --tanzu-kubernetes-cluster-name CLUSTER-NAME \ --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
예:kubectl vsphere login --server=192.197.2.65 --vsphere-username [email protected] \ --tanzu-kubernetes-cluster-name tkg2-cluster-1 --tanzu-kubernetes-cluster-namespace tkg2-cluster-namespace
참고: 로그인 명령은 제어부 노드가 실행 중이고 인증 서비스 플러그인이 시작된 후에만 성공합니다. 작업자 노드가 생성되는 중이면 로그인이 불규칙할 수 있습니다. 모든 클러스터 노드가 준비 상태가 되면 로그인하는 것이 좋습니다. - 컨텍스트를 TKG 클러스터로 전환하여 현재 컨텍스트가 되도록 합니다.
TKG 클러스터에 로그인하면 다음과 유사한 메시지가 표시될 수 있습니다.
Logged in successfully. You have access to the following contexts: 192.197.2.65 tkg2-cluster-namespace tkg2-cluster-1
여기서192.197.2.65
는 감독자 컨텍스트이고,tkg2-cluster-namespace
는 vSphere 네임스페이스 컨텍스트이고,tkg2-cluster-1
은 TKG 클러스터 컨텍스트입니다.TKG 클러스터 컨텍스트로 전환합니다.kubect config use-context tkg2-cluster-1
- TKG 클러스터 리소스를 확인합니다.
kubectl get nodes
kubectl get namespaces
kubectl get pods -A
kubectl cluster-info
kubectl api-resources
- 테스트 포드를 배포하여 TKG 클러스터를 실행하고 예상대로 작동하는지 확인합니다.
Kubectl을 사용하여 TKG 클러스터 프로비저닝 테스트의 내용을 참조하십시오.