이 항목에서는 Tanzu CLI를 사용하여 워크로드 클러스터를 생성하는 방법을 설명합니다.
아래 절차에서는 클러스터 구성 파일에서 워크로드 클러스터를 배포하는 방법을 설명합니다. 클러스터 구성 파일에서 다음 유형의 클러스터를 생성할 수 있습니다.
클래스 기반 클러스터: 워크로드 클러스터를 에 배포하는 경우 아래의 클래스 기반 클러스터 생성 단계를 따르십시오.
Supervisor가 있는 vSphere 8에 클래스 기반 워크로드를 배포하려면 Supervisor 배포 클래스 기반 클러스터 구성에 설명된 대로 개체 규격에서 배포해야 합니다. 클러스터 구성 파일 및 개체 규격에 대한 자세한 내용은 구성 파일을 참조하십시오.
(레거시) 계획 기반 및 TKC 클러스터: 아래의 (레거시) 계획 기반 또는 TKC 클러스터 생성 단계를 따르십시오.
이러한 클러스터 유형에 대한 자세한 내용은 Tanzu Kubernetes Grid 정보의 워크로드 클러스터 유형을 참조하십시오.
아래 절차에서는 클러스터 구성 파일에서 클래스 기반 워크로드 클러스터를 배포하는 방법을 설명합니다. 결과 클러스터는 Kubernetes의 Cluster
개체로 표시됩니다.
중요VMware 배포하는 모든 클러스터의 전용 구성 파일을 사용하고 유지하는 것이 좋습니다.
상기 구성의 일부로 준비한 구성 파일을 찾습니다.
클러스터를 생성합니다. 개체를 생성하기 전에 해당 개체 규격을 검사하거나 편집할지에 따라 클러스터를 1단계 또는 2단계로 생성할 수 있습니다.
–file
옵션인 tanzu cluster create
에 전달하면 명령이 자동으로 적용됩니다.–file
옵션인 tanzu cluster create
에 전달한 다음, 명령은 파일을 Cluster
개체 규격으로 변환하고 클러스터를 생성하지 않고 종료합니다. 규격을 검토하거나 편집한 후 tanzu cluster create
를 다시 실행하여 클러스터를 생성합니다.참고Tanzu Kubernetes Grid v2.1에서 2단계로 클러스터를 생성하는 경우
tanzu cluster create
가Error: workload cluster configuration validation failed...
와 유사한 오류와 함께 실패할 수도 있습니다. VMware Tanzu Kubernetes Grid v2.1 릴리스 정보의tanzu cluster create
실행 중 검증 오류를 참조하십시오.
아직 설정되지 않은 경우 auto-apply-generated-clusterclass-based-configuration
를 true
로 설정합니다. 이렇게 하면 항상 1단계 프로세스를 사용하여 클래스 기반 클러스터를 생성하도록 Tanzu CLI가 구성됩니다. auto-apply-generated-clusterclass-based-configuration
에 대한 자세한 내용은 Tanzu CLI 아키텍처 및 구성의 기능을 참조하십시오.
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration true
tanzu cluster create
를 실행하고 --file
옵션에서 클러스터 구성 파일의 경로를 지정합니다. 예를 들어, 기본 clusterconfigs
폴더에 my-workload-cluster.yaml
을 저장한 경우 다음 명령을 실행하여 구성 파일에 지정한 이름으로 클러스터를 생성합니다.
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
클러스터 구성 파일에 이름을 지정하지 않았거나 지정한 이름과 다른 이름을 가진 클러스터를 생성하려는 경우 tanzu cluster create
명령에 클러스터 이름을 지정합니다. 예를 들어, 구성 파일 my-workload-cluster.yaml
에서 another-workload-cluster
라는 클러스터를 생성하려면 다음 명령을 실행합니다.
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
아직 설정되지 않은 경우 auto-apply-generated-clusterclass-based-configuration
기능을 false
로 설정합니다. 이렇게 하면 2단계 프로세스를 사용하여 항상 클래스 기반 클러스터를 생성하도록 Tanzu CLI가 구성됩니다. false
가 기본 설정입니다. 기본 설정을 변경한 경우 false
로 다시 설정하려면 다음을 실행합니다.
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
auto-apply-generated-clusterclass-based-configuration
에 대한 자세한 내용은 Tanzu CLI 아키텍처 및 구성의 기능을 참조하십시오.
개체 규격을 생성하려면 --file
옵션에서 클러스터 구성 파일의 경로를 지정하여 tanzu cluster create
를 실행합니다. 이 명령은 결과 개체 규격을 ~/.config/tanzu/tkg/clusterconfigs
폴더에 저장하고 위치를 인쇄한 후 종료합니다.
예를 들어 클러스터 구성 파일 my-workload-cluster.yaml
을 기본 clusterconfigs
폴더에 저장한 경우 다음 명령을 실행하여 개체 규격을 생성합니다.
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
구성 파일에 클러스터 이름을 지정하지 않았거나 지정한 이름과 다른 이름을 가진 클러스터를 생성하려는 경우 tanzu cluster create
명령에 클러스터 이름을 지정합니다. 예:
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
tanzu cluster create
에 의해 생성된 개체 규격 파일을 검토하거나 편집합니다.
tanzu cluster create
를 다시 실행하고 --file
옵션에서 개체 규격 경로를 지정합니다. 예:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml
관리 클러스터와 다른 Kubernetes 버전을 실행하는 클러스터를 생성하는 경우 --tkr
플래그를 포함하여 첫 번째 단계에서 사용한 것과 동일한 플래그를 모두 포함합니다. 예:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml -v 6 --tkr v1.23.16---vmware.1-tkg.2
개체 규격을 생성하려면 --dry-run
옵션을 사용하여 tanzu cluster create
를 실행합니다. --dry-run
옵션은 auto-apply-generated-clusterclass-based-configuration
설정을 재정의합니다.
tanzu cluster create CLUSTER-NAME --dry-run --file PATH-TO-CLUSTER-CONFIG-FILE.yaml > PATH-TO-OBJECT-SPEC-FILE.yaml
여기서:
CLUSTER-NAME
은 클러스터의 이름입니다. 클러스터 구성 파일에서 CLUSTER-NAME
을 지정한 경우 생략할 수 있습니다.PATH-TO-CLUSTER-CONFIG-FILE
은 1단계에 있는 클러스터 구성 파일의 경로입니다.PATH-TO-OBJECT-SPEC-FILE
은 결과 개체 규격 파일을 저장할 위치입니다.예를 들어 결과 개체 규격을 이름이 my-workload-cluster-spec.yaml
인 파일에 저장하려면 다음을 실행합니다.
tanzu cluster create my-cluster --dry-run --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml > my-workload-cluster-spec.yaml
이전 단계의 --dry-run
옵션에서 생성된 개체 규격 파일을 검토하거나 편집합니다. 위 예에서 규격 파일의 이름은 my-workload-cluster-spec.yaml
입니다.
개체 규격 파일을 검토하거나 편집한 후 --dry-run
옵션 없이 tanzu cluster create
를 다시 실행합니다. --file
옵션에서 개체 규격 파일의 경로를 지정합니다. 예:
tanzu cluster create my-cluster --file my-workload-cluster-spec.yaml
관리 클러스터와 다른 Kubernetes 버전을 실행하는 클러스터를 생성하는 경우 --tkr
플래그를 포함하여 첫 번째 단계에서 사용한 것과 동일한 플래그를 모두 포함합니다. 예:
tanzu cluster create --file my-workload-cluster-spec.yaml -v 6 --tkr v1.23.16---vmware.1-tkg.2
참고클래스 기반 클러스터를 생성할 때 Tanzu CLI는 ytt를 사용하여 레거시 클러스터 구성에 설명된 대로
ytt
사용자 지정을 사용하지 않습니다. CLI가 시스템에서 이를 감지하면It seems like you have done some customizations to the template overlays.
오류가 발생합니다.
클러스터가 생성된 후 tanzu cluster get
명령을 실행하여 클러스터에 대한 정보를 확인합니다.
tanzu cluster get CLUSTER-NAME
출력에는 제어부 및 Worker 노드의 상태, 클러스터가 실행 중인 Kubernetes 버전 및 노드의 이름에 대한 정보가 표시됩니다.
아래 절차에서는 구성 파일에서 계획 기반 또는 TKC 클러스터를 배포하는 방법을 설명합니다.
AWSCluster
, AzureCluster
또는 VSphereCluster
개체로 표시됩니다.TanzuKubernetesCluster
개체로 표시됩니다.클러스터를 생성하려면 다음을 수행합니다.
Tanzu CLI에서 allow-legacy-cluster
기능을 true
로 설정합니다.
tanzu config set features.cluster.allow-legacy-cluster true
클러스터를 생성합니다.
tanzu cluster create
명령을 실행하고 --file
옵션에서 구성 파일의 경로를 지정합니다. 예를 들어, 기본 clusterconfigs
폴더에 워크로드 구성 파일 my-workload-cluster.yaml
을 저장한 경우 다음 명령을 실행하여 구성 파일에 지정한 이름으로 클러스터를 생성합니다.
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
구성 파일에 이름을 지정하지 않았거나 지정한 이름과 다른 이름을 가진 클러스터를 생성하려는 경우 tanzu cluster create
명령에 클러스터 이름을 지정합니다. 예를 들어, 구성 파일 my-workload-cluster.yaml
에서 another-workload-cluster
라는 클러스터를 생성하려면 다음 명령을 실행합니다.
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
클러스터가 생성된 후 tanzu cluster get
명령을 실행하여 클러스터에 대한 정보를 확인합니다.
tanzu cluster get CLUSTER-NAME
출력에는 제어부 및 Worker 노드의 상태, 클러스터가 실행 중인 Kubernetes 버전 및 노드의 이름에 대한 정보가 표시됩니다.
Supervisor 배포 TKC 클러스터(레거시) 구성에 설명된 대로 워크로드 클러스터에 대한 구성 파일을 생성하거나 복사합니다.
Tanzu CLI를 Supervisor에 연결한 후 대상 vSphere 네임스페이스를 가져옵니다.
tanzu namespaces get
클러스터의 버전이 지정된 TKr(Tanzu Kubernetes 릴리스)을 확인합니다.
Supervisor 클러스터에서 사용할 수 있는 TKr 목록을 가져옵니다.
tanzu kubernetes-release get
명령 출력에서 NAME
아래에 나열된 원하는 값(예: v1.22.5---vmware.1-tkg.1
)을 기록합니다. tkr
NAME
은 VERSION
과 동일하지만 +
를 ---
로 변경되었습니다.
TKR-NAME
값과 구성 파일 이름으로 tanzu cluster create
를 실행하여 클러스터를 배포합니다.
tanzu cluster create CLUSTER-NAME --file CONFIGURATION-FILE --tkr=TKR-NAME
형식 설명:
CLUSTER-NAME
은 클러스터에 입력하는 이름입니다. 이 명령줄 값은 구성 파일의 모든 CLUSTER_NAME
설정을 재정의합니다.CONFIGURATION-FILE
은 클러스터 구성 파일의 로컬 경로입니다(예: ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
).TKR-NAME
은 위에서 가져온 TKr의 이름입니다.클러스터가 생성된 후 tanzu cluster get
을 실행하여 클러스터의 현재 상태를 확인합니다.
tanzu cluster get CLUSTER-NAME
노드 DHCP 예약 및 끝점 DNS 레코드 구성(vSphere만 해당)에 설명된 대로 해당 제어부 노드 및 끝점의 IP 주소를 고정으로 구성합니다.
아래 절차에서는 Kubernetes 스타일 개체 규격을 사용하여 클래스 기반 워크로드 클러스터를 생성하는 방법을 설명합니다.
참고Tanzu Kubernetes Grid v2.1에서, 개체 규격에서 클러스터를 생성하는 경우,
tanzu cluster create
가Error: workload cluster configuration validation failed...
와 유사한 오류와 함께 실패할 수도 있습니다. VMware Tanzu Kubernetes Grid v2.1 릴리스 정보의tanzu cluster create
실행 중 검증 오류를 참조하십시오.
클래스 기반 워크로드 클러스터에 Kubernetes 스타일 개체 규격 파일을 생성하려면 아래 단계를 수행합니다.
auto-apply-generated-clusterclass-based-configuration
기능의 기본 구성을 업데이트한 경우 false
로 다시 설정한 다음 --file
플래그와 함께 tanzu cluster create
를 실행합니다. auto-apply-generated-clusterclass-based-configuration
을 false
로 설정하려면 다음을 수행합니다.
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
이 기능이 false
로 설정되고 --file
플래그를 사용하여 tanzu cluster create
를 실행하면 명령이 클러스터 구성 파일을 개체 규격 파일로 변환하고 클러스터를 생성하지 않고 종료합니다. 구성을 검토한 후 Tanzu CLI에서 생성된 개체 규격 파일로 tanzu cluster create
를 다시 실행합니다.
단일 클러스터의 규격 파일을 생성하고 --dry-run
옵션을 tanzu cluster create
로 전달하고 출력을 파일에 저장합니다. 클러스터를 생성하는 경우와 동일한 옵션 및 구성 --file
을 사용합니다. 예를 들면 다음과 같습니다.
tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
--dry-run
옵션은 auto-apply-generated-clusterclass-based-configuration
설정을 재정의합니다.
개체 규격 파일 예는 Cluster
개체 및 하위 개체 예를 참조하십시오.
Cluster
개체 사양을 생성하거나 조정합니다.
Cluster
개체 규격 예제(예: ,v1beta1 예: 기본 클러스터)가 포함되어 있습니다.topology
블록에서 VM 유형, 규모 및 기타 기본 클러스터 구성을 설정합니다.Cluster
개체 자체에서 설정할 수 없는 특성을 사용자 지정하려면 일회성 인프라 설정 구성을 참조하십시오.개체 규격에서 클래스 기반 워크로드 클러스터를 배포하려면 개체 규격을 tanzu cluster create
의 --file
옵션으로 전달합니다. 예:
tanzu cluster create my-cluster --file my-cluster-spec.yaml
참고클래스 기반 클러스터를 생성할 때 Tanzu CLI는 ytt를 사용하여 레거시 클러스터 구성에 설명된 대로
ytt
사용자 지정을 사용하지 않습니다. CLI가 시스템에서 이를 감지하면It seems like you have done some customizations to the template overlays.
오류가 발생합니다.
vSphere with Tanzu Supervisor 클러스터가 아닌 tanzu management-cluster create
또는 tanzu mc create
를 사용하여 생성된 관리 클러스터에서 관리되는 워크로드 클러스터의 경우, Harbor 또는 기타 서비스를 배포하면 모든 워크로드가 단일 서비스 인스턴스를 공유할 수 있습니다.
각 Tanzu Kubernetes Grid 인스턴스에는 하나의 공유 서비스 클러스터만 있을 수 있습니다.
공유 서비스 클러스터에 Harbor를 배포하면 동일한 관리 클러스터에서 관리하는 모든 워크로드 클러스터가 단일 Harbor 인스턴스를 공유할 수 있습니다. Harbor 배포에 대한 지침은 서비스 레지스트리용 Harbor 설치를 참조하십시오.
공유 클러스터를 생성하는 방법:
클러스터용 클러스터 구성 YAML 파일을 생성합니다. dev
계획 대신 prod
클러스터 계획을 사용하는 것이 좋습니다. 예:
INFRASTRUCTURE_PROVIDER: vsphere
CLUSTER_NAME: YOUR-CLUSTER-NAME
CLUSTER_PLAN: prod
여기서 YOUR-CLUSTER-NAME
은 클러스터에 대해 선택하는 이름입니다. 예: tkg-services
.
(vSphere만 해당) 클러스터의 제어부 API에 기본 Kube-Vip 로드 밸런서를 사용하는 경우, VSPHERE_CONTROL_PLANE_ENDPOINT
를 설정하여 끝점을 지정해야 합니다. 이 IP 주소가 DHCP 범위에 있지 않지만 DHCP 범위와 동일한 서브넷에 있는지 확인합니다. FQDN(정규화된 도메인 이름)을 VIP 주소에 매핑한 경우 VIP 주소 대신 FQDN을 지정할 수 있습니다.
ALB(NSX Advanced Load Balancer)를 사용하는 경우 제어부 끝점을 특정 주소로 지정해야 하는 경우가 아니면 VSPHERE_CONTROL_PLANE_ENDPOINT
를 설정하지 마십시오. 이 경우 고정 IP 풀에 수동으로 추가한 NSX ALB IPAM 프로필의 VIP 네트워크 범위 내에서 고정 주소를 사용하거나 고정 주소에 매핑된 FQDN을 사용합니다.
예:
VSPHERE_CONTROL_PLANE_ENDPOINT: 10.10.10.10
위의 구성 파일에서 클러스터 생성에 설명된 대로 공유 서비스 클러스터를 생성합니다.
kubectl
컨텍스트를 관리 클러스터의 컨텍스트로 설정합니다. 예:
kubectl config use-context mgmt-cluster-admin@mgmt-cluster
이 예에서 mgmt-cluster
는 관리 클러스터의 이름입니다.
공유 서비스 클러스터에 tanzu-services
레이블을 클러스터 역할로 추가합니다. 이 레이블은 관리 클러스터 및 워크로드 클러스터에 대한 공유 서비스 클러스터를 식별합니다. 예:
kubectl label cluster.cluster.x-k8s.io/tkg-services cluster-role.tkg.tanzu.vmware.com/tanzu-services="" --overwrite=true
이 예에서 tkg-services
는 공유 서비스 클러스터의 이름입니다. 확인 cluster.cluster.x-k8s.io/tkg-services labeled
이 표시됩니다.
다음 명령을 실행하여 레이블이 올바르게 적용되었는지 확인합니다.
tanzu cluster list --include-management-cluster
공유 서비스 클러스터에 tanzu-services
역할이 있는지 확인해야 합니다. 예:
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN TKR
another-cluster default running 1/1 1/1 v1.24.10+vmware.1 <none> dev v1.24.10---vmware.1-tkg
tkg-services default running 3/3 3/3 v1.24.10+vmware.1 tanzu-services prod v1.24.10---vmware.1-tkg
mgmt-cluster tkg-system running 1/1 1/1 v1.24.10+vmware.1 management dev v1.24.10---vmware.1-tkg
공유 서비스 클러스터의 admin
자격 증명을 가져옵니다. 예:
tanzu cluster kubeconfig get tkg-services --admin
kubectl
의 컨텍스트를 공유 서비스 클러스터로 설정합니다. 예:
kubectl config use-context tkg-services-admin@tkg-services