구성 파일 및 개체 규격

이 항목에서는 플랫 구성 파일 또는 Kubernetes 스타일 개체 규격을 사용하여 TKG(Tanzu Kubernetes Grid) 워크로드 클러스터를 구성하는 방법을 설명합니다. IaaS 관련 지침은 다음을 참조하십시오.

클러스터 유형

워크로드 클러스터를 구성하는 방법은 아래 섹션에 설명된 대로 클러스터 유형에 따라 다릅니다.

  • (기본값 유형) 클래스 기반 클러스터Cluster 개체에 Kubernetes 스타일 개체 규격을 사용합니다. 클래스 기반 클러스터를 생성하려면 이 개체 사양 또는 CLUSTER_NAME과 같은 대문자-밑줄 변수를 설정하는 플랫 구조의 클러스터 구성 파일을 tanzu cluster create로 전달합니다.

    • 또한 고급 사용자 지정을 위해 ClusterBootstrap 및 참조하는 개체에 규격이 필요할 수도 있습니다.
  • (레거시 유형) 계획 기반 및 TKC 클러스터CLUSTER_NAME과 같은 대문자 밑줄 변수를 설정하는 플랫 구조의 클러스터 구성 파일을 사용합니다. 레거시 클러스터를 생성하려면 이 구성 파일을 tanzu cluster create로 전달합니다.

    • 워크로드 클러스터 또는 클러스터 계획을 사용자 지정하려면 고급 사용자 지정을 위해 계층 오버레이가 필요할 수 있습니다. ytt를 다운로드하고 설치하는 방법에 대한 자세한 내용은 Carvel 도구 설치를 참조하십시오.

위의 클러스터 유형, 그리고 이 유형이 사용하는 클러스터 API 제공자에 대한 자세한 내용은 다음을 참조하십시오.

워크로드 클러스터에 선택할 구성 파일에 대한 자세한 내용은 아래 표를 참조하십시오.

구성 파일

Tanzu CLI와 함께 ...을(를) 사용 가능 다음 유형의 워크로드 클러스터를 생성하기 위해 ... 인프라에서
플랫 클러스터 구성 파일
  • 클래스 기반 클러스터
  • 계획 기반 클러스터
  • TKC 클러스터
  • 독립형 관리 클러스터가 있는 vSphere 7 및 8의 클래스 기반 클러스터, AWS, Azure
  • 독립형 관리 클러스터가 있는 vSphere 7 및 8의 계획 기반 클러스터, AWS, Azure
  • Supervisor가 있는 vSphere 8의 TKC 클러스터
Kubernetes 스타일 개체 규격 클래스 기반 클러스터 Supervisor가 있는 vSphere 8, 독립형 관리 클러스터가 있는 vSphere 7 및 8, AWS, Azure

클러스터 구성 파일을 사용하여 워크로드 클러스터 구성

클러스터 구성 파일을 사용하여 다음과 같은 유형의 클러스터를 구성할 수 있습니다.

  • 클래스 기반 클러스터: 여기에는 다음에 배포하는 것이 포함됩니다.

    • 독립형 관리 클러스터가 있는 vSphere 7 및 8
    • AWS
    • Azure

    Supervisor가 있는 vSphere 8에 클래스 기반 워크로드를 배포하려면 Supervisor 배포 클래스 기반 클러스터 구성(vSphere 8만 해당)에 설명된 대로 개체 규격에서 배포해야 합니다.

  • (레거시) 계획 기반 및 TKC 클러스터: 여기에는 다음에 배포하는 것이 포함됩니다.

    • 계획 기반 클러스터의 경우: 독립형 관리 클러스터가 있는 vSphere 7 및 8, AWS, Azure
    • TKC 클러스터의 경우: Supervisor가 있는 vSphere 8

클러스터 구성 파일 정보

워크로드 클러스터를 vSphere, AWS 또는 Azure에 배포하기 전에 클러스터용 구성 파일을 생성합니다. 이 파일을 tanzu cluster create--file 옵션으로 전달하면 Tanzu CLI는 파일에 정의된 구성 정보를 사용하여 대상 플랫폼에 연결하고 클러스터에서 사용할 리소스를 생성합니다.

클러스터 구성 파일을 생성하려면 이전 배포에 대한 기존 구성 파일을 복사하여 업데이트할 수 있습니다. 또는 빈 템플릿을 사용하여 파일을 처음부터 생성할 수 있습니다.

첫 번째 클러스터 구성 파일 생성

워크로드 클러스터를 배포할 때 대부분의 클러스터 구성은 클러스터를 배포하는 데 사용하는 독립형 관리 클러스터 구성과 동일합니다. 따라서 워크로드 클러스터용 구성 파일을 생성하는 가장 쉬운 방법은 독립형 관리 클러스터 구성 파일의 복사본으로 시작하는 것입니다.

  1. 관리 클러스터용 YAML 구성 파일을 찾습니다.

    • 설치 관리자 인터페이스에서 관리 클러스터를 배포했으며 tanzu mc create --ui를 실행할 때 --file 옵션을 지정하지 않은 경우 구성 파일이 ~/.config/tanzu/tkg/clusterconfigs/에 저장됩니다. 파일에는 임의로 생성된 이름(예: bm8xk9bv1v.yaml)이 있습니다.
    • 설치 관리자 인터페이스에서 관리 클러스터를 배포하고 --file 옵션을 지정한 경우 관리 클러스터 구성은 지정한 파일에서 가져옵니다.
    • 설치 관리자 인터페이스를 사용하지 않고 Tanzu CLI에서 관리 클러스터를 배포한 경우 관리 클러스터 구성은 --file 옵션에 지정한 파일 또는 기본 위치인 ~/.config/tanzu/tkg/cluster-config.yaml에서 가져옵니다.
  2. 관리 클러스터 구성 파일의 복사본을 만들어 새 이름으로 저장합니다. 예를 들어 파일을 my-aws-cluster.yaml, my-azure-cluster.yaml 또는 my-vsphere-cluster.yaml로 저장합니다.

  3. 클러스터 구성 파일에서 설정을 업데이트합니다. 기본 Ubuntu 20.04 이외의 OS를 사용하도록 워크로드 클러스터를 구성하려면 OS_NAMEOS_VERSION 값을 설정해야 합니다. 설치 관리자 인터페이스에는 ~/.config/tanzu/tkg/clusterconfigs로 저장하는 관리 클러스터 구성 파일에 노드 VM OS 값이 포함되지 않습니다.

  4. 파일을 저장합니다.

vSphere 8 with Supervisor에서 TKC 클러스터용 클러스터 구성 파일을 준비하려면 Supervisor 배포 TKC 클러스터(레거시) 구성을 참조하십시오.

개체 규격을 사용하여 워크로드 클러스터 구성

Kubernetes 스타일 개체 규격 파일을 사용하여 클래스 기반 워크로드 클러스터를 배포할 수 있습니다.

  • Supervisor가 없는 vSphere 7 및 8
  • Supervisor가 있는 vSphere 8
  • AWS
  • Azure

개체 규격 파일 정보

개체 규격 파일은 클러스터 구성 파일과 동일한 용도로 사용됩니다. tanzu cluster create--file 옵션에 개체 규격을 전달하면 Tanzu CLI는 개체 규격에 정의된 구성 정보를 사용하여 클러스터를 생성합니다.

첫 번째 개체 규격 파일 생성

다른 Kubernetes 개체와 마찬가지로 개체 규격을 생성하고 편집하여 클래스 기반 워크로드 클러스터를 구성할 수 있습니다. 클러스터 개체의 경우 다음과 같습니다.

  • Cluster 개체: 클러스터 토폴로지와 같은 대부분의 클러스터 옵션을 구성합니다. 실행 중인 클러스터의 구성을 변경하기 위해 이 개체 규격을 변경하고 다시 적용할 수 있습니다.
  • (선택 사항, vSphere with Tanzu) ClusterBootstrap 개체: CNI(컨테이너 네트워크 인터페이스) 및 CSI(컨테이너 스토리지 인터페이스)와 같이 클러스터를 처음 생성할 때만 적용되고 실행 중인 클러스터에서 재구성할 수 없는 기본값이 아닌 옵션을 구성합니다. 자세한 내용은 일회성 인프라 설정 구성을 참조하십시오.

첫 번째 개체 규격 파일을 생성하려면 다음을 수행합니다.

  • 클러스터 기반 워크로드 클러스터를 Supervisor가 없는 vSphere, AWS 또는 Azure에 배포하는 경우, Tanzu CLI를 사용하여 클러스터를 배포하지 않고도 클래스 개체 규격 파일로 클러스터 구성 파일을 변환할 수 있습니다.

    • (글로벌 구성) Tanzu CLI의 auto-apply-generated-clusterclass-based-configuration 기능을 사용합니다. 이 기능은 기본적으로 false로 설정됩니다. auto-apply-generated-clusterclass-based-configurationfalse로 설정되고 --file 플래그를 사용하여 tanzu cluster create를 실행하면 명령이 클러스터 구성 파일을 개체 규격 파일로 변환하고 클러스터를 생성하지 않고 종료합니다. 구성을 검토한 후 개체 규격에서 클래스 기반 클러스터 생성에 설명된 대로 Tanzu CLI에서 생성된 개체 규격 파일을 사용하여 tanzu cluster create를 다시 실행합니다. 기본 구성을 업데이트한 경우 false로 다시 설정하려면 다음을 실행합니다.

      tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
      
    • (단일 클러스터) --dry-run 옵션을 tanzu cluster create로 전달하고 출력을 파일에 저장합니다. 클러스터를 생성하는 경우와 동일한 옵션 및 구성 --file을 사용합니다. 예를 들면 다음과 같습니다.

      tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
      

      그런 다음 개체에서 클래스 기반 클러스터 생성에 설명된 대로 이 개체 규격을 사용하여 클러스터를 배포할 수 있습니다.

  • Supervisor가 있는 vSphere 8에 클래스 기반 워크로드 클러스터를 배포하는 경우 Supervisor가 배포한 클래스 기반 클러스터 구성(vSphere 8만 해당)에 설명된 대로 Cluster 개체 사양을 생성하거나 조정합니다. vSphere 8 설명서에는 작동할 Cluster 개체 규격 예제(예: ,v1beta1 예: 기본 클러스터)가 포함되어 있습니다.

일회성 인프라 설정 구성(vSphere with Tanzu)

Cluster 개체 규격에서 가장 일반적인 클러스터 설정을 구성할 수 있지만 일부 클러스터 구성 요소는 노드의 기반이 되는 TKr(Tanzu Kubernetes 릴리스)에서 가져옵니다. 예를 들어, TKr은 클러스터가 사용하는 CNI, CSI, Pinniped 버전을 지정합니다.

이러한 인프라 수준 옵션은 ClusterBootstrap 개체에 의해 클러스터 생성 시 적용되며, 실행 중인 클러스터에서는 변경할 수 없습니다. 클러스터를 생성하기 전에 이러한 옵션을 구성하는 일반적인 절차는 다음과 동일합니다.

  1. ClusterBootstrap 개체 및 참조하는 모든 사용자 지정 개체(예: CalicoConfig 개체)의 개체 규격을 생성합니다.

  2. Cluster 개체 자체의 개체 규격을 생성합니다.

  3. 모든 개체 규격의 metadata는 생성하려는 클러스터의 이름 및 네임스페이스를 포함합니다. 예:

    apiVersion: run.tanzu.vmware.com/v1alpha3
    kind: ClusterBootstrap
    metadata:
      name: MY-CLUSTER
      namespace: MY-NAMESPACE
    

    사용자 지정에는 주석과 같은 추가 메타데이터가 필요할 수 있습니다.

  4. Cluster 정의를 포함한 모든 개체 규격을 단일 파일로 연결합니다. 규격을 3개의 대시(---)로 구성된 줄로 구분합니다.

  5. 개체 규격을 kubectl apply --file 옵션으로 전달합니다. 예를 들면 다음과 같습니다.

    kubectl config use-context CONTEXT-NAME
    
    kubectl apply -f my-custom-cluster-objects.yaml
    

대체 방법: 마지막 두 단계 대신 kubectl apply -f 개체를 제외한 모든 개체 규격에 Cluster를 실행한 다음 tanzu cluster create --file 개체 규격을 사용하여 Cluster를 실행할 수 있습니다.

이 절차의 특정 예를 보려면 클러스터의 CNI를 Calico로 설정하는 기본이 아닌 CNI를 사용하여 클러스터 생성을 참조하십시오.

워크로드 클러스터, kubectl, kubeconfig

Tanzu Kubernetes Grid는 워크로드 클러스터를 생성할 때 kubectl 컨텍스트를 자동으로 설정하지 않습니다. kubectl config use-context 명령을 사용하여 kubectl 컨텍스트를 워크로드 클러스터로 수동으로 설정해야 합니다.

기본적으로 클러스터의 kubeconfig를 특정 파일에 저장하기 위해 KUBECONFIG 옵션을 지정하지 않는 한, 배포하는 모든 워크로드 클러스터는 공유 .kube/config 파일에 추가됩니다. 공유된 .kube/config 파일을 삭제하고 관리 클러스터의 .kube-tkg/config 파일이 그대로 있는 경우, tanzu cluster kubeconfig get CLUSTER-NAME 명령을 사용하여 워크로드 클러스터의 .kube/config를 복구할 수 있습니다.

Tanzu Kubernetes Grid 작업이 실행되는 동안 컨텍스트를 변경하거나 .kube-tkg/config 또는 .kube/config 파일을 편집하지 마십시오.

후속 작업

해당 인프라의 클러스터 구성 항목으로 진행합니다.

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