워크로드 클러스터 생성

이 항목에서는 Tanzu CLI를 사용하여 워크로드 클러스터를 생성하는 방법을 설명합니다.

사전 요구 사항

(권장) 구성 파일에서 클러스터 생성

아래 절차에서는 클러스터 구성 파일에서 워크로드 클러스터를 배포하는 방법을 설명합니다. 클러스터 구성 파일에서 다음 유형의 클러스터를 생성할 수 있습니다.

이러한 클러스터 유형에 대한 자세한 내용은 Tanzu Kubernetes Grid 정보의 워크로드 클러스터 유형을 참조하십시오.

클래스 기반 클러스터 생성

아래 절차에서는 클러스터 구성 파일에서 클래스 기반 워크로드 클러스터를 배포하는 방법을 설명합니다. 결과 클러스터는 Kubernetes의 Cluster 개체로 표시됩니다.

중요

VMware 배포하는 모든 클러스터의 전용 구성 파일을 사용하고 유지하는 것이 좋습니다.

  1. 상기 구성의 일부로 준비한 구성 파일을 찾습니다.

  2. 클러스터를 생성합니다. 개체를 생성하기 전에 해당 개체 규격을 검사하거나 편집할지에 따라 클러스터를 1단계 또는 2단계로 생성할 수 있습니다.

    • (권장) 1단계로 클러스터를 생성할 때 클러스터 구성 파일을 –file 옵션인 tanzu cluster create에 전달하면 명령이 자동으로 적용됩니다.
    • 2단계로 클러스터를 생성할 때 클러스터 구성 파일을 –file 옵션인 tanzu cluster create에 전달한 다음, 명령은 파일을 Cluster 개체 규격으로 변환하고 클러스터를 생성하지 않고 종료합니다. 규격을 검토하거나 편집한 후 tanzu cluster create를 다시 실행하여 클러스터를 생성합니다.

    1단계 프로세스(권장)
    1단계 프로세스를 수행하려면 다음을 수행합니다.
    1. 아직 설정되지 않은 경우 auto-apply-generated-clusterclass-based-configurationtrue로 설정합니다. 이렇게 하면 항상 1단계 프로세스를 사용하여 클래스 기반 클러스터를 생성하도록 Tanzu CLI가 구성됩니다. auto-apply-generated-clusterclass-based-configuration에 대한 자세한 내용은 Tanzu CLI 아키텍처 및 구성의 기능을 참조하십시오.

      tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration true
      
    2. 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
      
    2단계 프로세스, 항상
    생성하는 모든 클러스터에 대해 2단계 프로세스를 수행하려면 다음을 수행합니다.
    1. 아직 설정되지 않은 경우 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 아키텍처 및 구성의 기능을 참조하십시오.

    2. 개체 규격을 생성하려면 --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
      
    3. tanzu cluster create에 의해 생성된 개체 규격 파일을 검토하거나 편집합니다.

    4. 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
      
    2단계 프로세스, 한 번
    단일 클러스터에 2단계 프로세스를 수행하려면 다음을 수행합니다.
    1. 개체 규격을 생성하려면 --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
      
    2. 이전 단계의 --dry-run 옵션에서 생성된 개체 규격 파일을 검토하거나 편집합니다. 위 예에서 규격 파일의 이름은 my-workload-cluster-spec.yaml입니다.

    3. 개체 규격 파일을 검토하거나 편집한 후 --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. 오류가 발생합니다.

  3. 클러스터가 생성된 후 tanzu cluster get 명령을 실행하여 클러스터에 대한 정보를 확인합니다.

    tanzu cluster get CLUSTER-NAME
    

    출력에는 제어부 및 Worker 노드의 상태, 클러스터가 실행 중인 Kubernetes 버전 및 노드의 이름에 대한 정보가 표시됩니다.

(레거시) 계획 기반 또는 TKC 클러스터 생성

아래 절차에서는 구성 파일에서 계획 기반 또는 TKC 클러스터를 배포하는 방법을 설명합니다.

  • 계획 기반 클러스터: 결과 클러스터는 대상 인프라 플랫폼에 따라 Kubernetes의 AWSCluster, AzureCluster 또는 VSphereCluster 개체로 표시됩니다.
  • TKC 클러스터: 결과 클러스터는 Kubernetes의 TanzuKubernetesCluster 개체로 표시됩니다.

클러스터를 생성하려면 다음을 수행합니다.

  1. Tanzu CLI에서 allow-legacy-cluster 기능을 true로 설정합니다.

    tanzu config set features.cluster.allow-legacy-cluster true
    
  2. 클러스터를 생성합니다.

    계획 기반 클러스터
    계획 기반 클러스터를 생성하는 경우 아래 단계를 따르십시오.
    1. 상기 구성의 일부로 준비한 구성 파일을 찾습니다.
    2. 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
      
    3. 클러스터가 생성된 후 tanzu cluster get 명령을 실행하여 클러스터에 대한 정보를 확인합니다.

      tanzu cluster get CLUSTER-NAME
      

      출력에는 제어부 및 Worker 노드의 상태, 클러스터가 실행 중인 Kubernetes 버전 및 노드의 이름에 대한 정보가 표시됩니다.

    TKC 클러스터
    TKC 클러스터를 생성하는 경우 아래 단계를 수행합니다.
    1. Supervisor 배포 TKC 클러스터(레거시) 구성에 설명된 대로 워크로드 클러스터에 대한 구성 파일을 생성하거나 복사합니다.

    2. Tanzu CLI를 Supervisor에 연결한 후 대상 vSphere 네임스페이스를 가져옵니다.

      tanzu namespaces get
      
    3. 클러스터의 버전이 지정된 TKr(Tanzu Kubernetes 릴리스)을 확인합니다.

      1. Supervisor 클러스터에서 사용할 수 있는 TKr 목록을 가져옵니다.

        tanzu kubernetes-release get
        
      2. 명령 출력에서 NAME 아래에 나열된 원하는 값(예: v1.22.5---vmware.1-tkg.1)을 기록합니다. tkr NAMEVERSION과 동일하지만 +---로 변경되었습니다.

    4. 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의 이름입니다.
    5. 클러스터가 생성된 후 tanzu cluster get을 실행하여 클러스터의 현재 상태를 확인합니다.

      tanzu cluster get CLUSTER-NAME
      
    6. 노드 DHCP 예약 및 끝점 DNS 레코드 구성(vSphere만 해당)에 설명된 대로 해당 제어부 노드 및 끝점의 IP 주소를 고정으로 구성합니다.

개체 규격에서 클러스터 생성

아래 절차에서는 Kubernetes 스타일 개체 규격을 사용하여 클래스 기반 워크로드 클러스터를 생성하는 방법을 설명합니다.

  1. 아래의 개체 규격 생성에 설명된 대로 클러스터 개체 규격을 생성합니다.
  2. 아래의 개체 규격에서 클래스 기반 클러스터 생성에 설명된 대로 개체 규격에서 클러스터를 배포합니다.

개체 규격 생성

클래스 기반 워크로드 클러스터에 Kubernetes 스타일 개체 규격 파일을 생성하려면 아래 단계를 수행합니다.

독립형 관리 클러스터
워크로드 클러스터를 독립 실행형 관리 클러스터가 있는 vSphere, AWS 또는 Azure에 배포하는 경우, Tanzu CLI를 사용하여 클러스터를 배포하지 않고도 클래스 기반 워크로드 클러스터용 Kubernetes 스타일 개체 규격 파일로 클러스터 구성 파일을 변환할 수 있습니다. 그런 다음 규격을 예로 사용하여 고유한 규격을 생성할 수 있습니다. 규격 파일을 생성하려면 다음을 수행할 수 있습니다.
  • auto-apply-generated-clusterclass-based-configuration 기능의 기본 구성을 업데이트한 경우 false로 다시 설정한 다음 --file 플래그와 함께 tanzu cluster create를 실행합니다. auto-apply-generated-clusterclass-based-configurationfalse로 설정하려면 다음을 수행합니다.

    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 개체 및 하위 개체 예를 참조하십시오.

Supervisor
Supervisor가 있는 vSphere 8에 워크로드 클러스터를 배포하는 경우 Supervisor가 배포한 클래스 기반 클러스터 구성에 설명된 대로 Cluster 개체 사양을 생성하거나 조정합니다.
  • vSphere 8 설명서에는 작동할 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 설치를 참조하십시오.

공유 클러스터를 생성하는 방법:

  1. 클러스터용 클러스터 구성 YAML 파일을 생성합니다. dev 계획 대신 prod 클러스터 계획을 사용하는 것이 좋습니다. 예:

    INFRASTRUCTURE_PROVIDER: vsphere
    CLUSTER_NAME: YOUR-CLUSTER-NAME
    CLUSTER_PLAN: prod
    

    여기서 YOUR-CLUSTER-NAME은 클러스터에 대해 선택하는 이름입니다. 예: tkg-services.

  2. (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
    
  3. 위의 구성 파일에서 클러스터 생성에 설명된 대로 공유 서비스 클러스터를 생성합니다.

  4. kubectl 컨텍스트를 관리 클러스터의 컨텍스트로 설정합니다. 예:

    kubectl config use-context mgmt-cluster-admin@mgmt-cluster
    

    이 예에서 mgmt-cluster는 관리 클러스터의 이름입니다.

  5. 공유 서비스 클러스터에 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이 표시됩니다.

  6. 다음 명령을 실행하여 레이블이 올바르게 적용되었는지 확인합니다.

    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.25.7+vmware.1  <none>          dev    v1.25.7---vmware.1-tkg
    tkg-services      default     running  3/3           3/3      v1.25.7+vmware.1  tanzu-services  prod   v1.25.7---vmware.1-tkg
    mgmt-cluster      tkg-system  running  1/1           1/1      v1.25.7+vmware.1  management      dev    v1.25.7---vmware.1-tkg
    
  7. 공유 서비스 클러스터의 admin 자격 증명을 가져옵니다. 예:

    tanzu cluster kubeconfig get tkg-services --admin
    
  8. kubectl의 컨텍스트를 공유 서비스 클러스터로 설정합니다. 예:

    kubectl config use-context tkg-services-admin@tkg-services
    

후속 작업

check-circle-line exclamation-circle-line close-line
Scroll to top icon