이 항목에서는 플랫 구성 파일 또는 Kubernetes 스타일 개체 규격을 사용하여 TKG(Tanzu Kubernetes Grid) 워크로드 클러스터를 구성하는 방법을 설명합니다. IaaS 관련 지침은 다음을 참조하십시오.
워크로드 클러스터를 구성하는 방법은 아래 섹션에 설명된 대로 클러스터 유형에 따라 다릅니다.
(기본값 유형) 클래스 기반 클러스터는 Cluster
개체에 Kubernetes 스타일 개체 규격을 사용합니다. 클래스 기반 클러스터를 생성하려면 이 개체 사양 또는 CLUSTER_NAME
과 같은 대문자-밑줄 변수를 설정하는 플랫 구조의 클러스터 구성 파일을 tanzu cluster create
로 전달합니다.
ClusterBootstrap
및 참조하는 개체에 규격이 필요할 수도 있습니다.(레거시 유형) 계획 기반 및 TKC 클러스터는 CLUSTER_NAME
과 같은 대문자 밑줄 변수를 설정하는 플랫 구조의 클러스터 구성 파일을 사용합니다. 레거시 클러스터를 생성하려면 이 구성 파일을 tanzu cluster create
로 전달합니다.
ytt
를 다운로드하고 설치하는 방법에 대한 자세한 내용은 Carvel 도구 설치를 참조하십시오.위의 클러스터 유형, 그리고 이 유형이 사용하는 클러스터 API 제공자에 대한 자세한 내용은 다음을 참조하십시오.
kubectl
이 포함되어 있습니다.워크로드 클러스터에 선택할 구성 파일에 대한 자세한 내용은 아래 표를 참조하십시오.
Tanzu CLI와 함께 …을(를) 사용하여 | 다음 유형의 워크로드 클러스터를… | … 인프라에서 생성 가능 |
---|---|---|
플랫 클러스터 구성 파일 |
|
|
Kubernetes 스타일 개체 규격 | 클래스 기반 클러스터 | Supervisor가 있는 vSphere 8, 독립형 관리 클러스터가 있는 vSphere 6.7, 7, 8, AWS, Azure |
클러스터 구성 파일을 사용하여 다음과 같은 유형의 클러스터를 구성할 수 있습니다.
클래스 기반 클러스터: 여기에는 다음에 배포하는 것이 포함됩니다.
Supervisor가 있는 vSphere 8에 클래스 기반 워크로드를 배포하려면 Supervisor 배포 클래스 기반 클러스터 구성(vSphere 8만 해당)에 설명된 대로 개체 규격에서 배포해야 합니다.
(레거시) 계획 기반 및 TKC 클러스터: 여기에는 다음에 배포하는 것이 포함됩니다.
워크로드 클러스터를 vSphere, AWS 또는 Azure에 배포하기 전에 클러스터용 구성 파일을 생성합니다. 이 파일을 tanzu cluster create
의 --file
옵션으로 전달하면 Tanzu CLI는 파일에 정의된 구성 정보를 사용하여 대상 플랫폼에 연결하고 클러스터에서 사용할 리소스를 생성합니다.
클러스터 구성 파일을 생성하려면 이전 배포에 대한 기존 구성 파일을 복사하여 업데이트할 수 있습니다. 또는 빈 템플릿을 사용하여 파일을 처음부터 생성할 수 있습니다.
인프라와 관련된 구성 정보를 설정하려면 다음을 참조하십시오.
클러스터 구성 파일에 지정할 수 있는 전체 옵션 목록은 구성 파일 변수 참조를 참조하십시오.
워크로드 클러스터를 배포할 때 대부분의 클러스터 구성은 클러스터를 배포하는 데 사용하는 독립형 관리 클러스터 구성과 동일합니다. 따라서 워크로드 클러스터용 구성 파일을 생성하는 가장 쉬운 방법은 독립형 관리 클러스터 구성 파일의 복사본으로 시작하는 것입니다.
관리 클러스터용 YAML 구성 파일을 찾습니다.
tanzu mc create --ui
를 실행할 때 --file
옵션을 지정하지 않은 경우 구성 파일이 ~/.config/tanzu/tkg/clusterconfigs/
에 저장됩니다. 파일에는 임의로 생성된 이름(예: bm8xk9bv1v.yaml
)이 있습니다.--file
옵션을 지정한 경우 관리 클러스터 구성은 지정한 파일에서 가져옵니다.--file
옵션에 지정한 파일 또는 기본 위치인 ~/.config/tanzu/tkg/cluster-config.yaml
에서 가져옵니다.관리 클러스터 구성 파일의 복사본을 만들어 새 이름으로 저장합니다. 예를 들어 파일을 my-aws-cluster.yaml
, my-azure-cluster.yaml
또는 my-vsphere-cluster.yaml
로 저장합니다.
클러스터 구성 파일에서 설정을 업데이트합니다. 기본 Ubuntu 20.04 이외의 OS를 사용하도록 워크로드 클러스터를 구성하려면 OS_NAME
및 OS_VERSION
값을 설정해야 합니다. 설치 관리자 인터페이스에는 ~/.config/tanzu/tkg/clusterconfigs
로 저장하는 관리 클러스터 구성 파일에 노드 VM OS 값이 포함되지 않습니다.
파일을 저장합니다.
vSphere 8 with Supervisor에서 TKC 클러스터용 클러스터 구성 파일을 준비하려면 Supervisor 배포 TKC 클러스터(레거시) 구성을 참조하십시오.
Kubernetes 스타일 개체 규격 파일을 사용하여 클래스 기반 워크로드 클러스터를 배포할 수 있습니다.
개체 규격 파일은 클러스터 구성 파일과 동일한 용도로 사용됩니다. tanzu cluster create
의 --file
옵션에 개체 규격을 전달하면 Tanzu CLI는 개체 규격에 정의된 구성 정보를 사용하여 클러스터를 생성합니다.
다른 Kubernetes 개체와 마찬가지로 개체 규격을 생성하고 편집하여 클래스 기반 워크로드 클러스터를 구성할 수 있습니다. 클러스터 개체의 경우 다음과 같습니다.
Cluster
개체: 클러스터 토폴로지와 같은 대부분의 클러스터 옵션을 구성합니다. 실행 중인 클러스터의 구성을 변경하기 위해 이 개체 규격을 변경하고 다시 적용할 수 있습니다.ClusterBootstrap
개체: CNI(컨테이너 네트워크 인터페이스) 및 CSI(컨테이너 스토리지 인터페이스)와 같이 클러스터를 처음 생성할 때만 적용되고 실행 중인 클러스터에서 재구성할 수 없는 기본값이 아닌 옵션을 구성합니다. 자세한 내용은 일회성 인프라 설정 구성을 참조하십시오.첫 번째 개체 규격 파일을 생성하려면 다음을 수행합니다.
클러스터 기반 워크로드 클러스터를 Supervisor가 없는 vSphere, AWS 또는 Azure에 배포하는 경우, Tanzu CLI를 사용하여 클러스터를 배포하지 않고도 클래스 개체 규격 파일로 클러스터 구성 파일을 변환할 수 있습니다.
(글로벌 구성) Tanzu CLI의 auto-apply-generated-clusterclass-based-configuration
기능을 사용합니다. 이 기능은 기본적으로 false
로 설정됩니다. auto-apply-generated-clusterclass-based-configuration
이 false
로 설정되고 --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 예: 기본 클러스터)가 포함되어 있습니다.
Cluster
개체 규격에서 가장 일반적인 클러스터 설정을 구성할 수 있지만 일부 클러스터 구성 요소는 노드의 기반이 되는 TKr(Tanzu Kubernetes 릴리스)에서 가져옵니다. 예를 들어, TKr은 클러스터가 사용하는 CNI, CSI, Pinniped 버전을 지정합니다.
이러한 인프라 수준 옵션은 ClusterBootstrap
개체에 의해 클러스터 생성 시 적용되며, 실행 중인 클러스터에서는 변경할 수 없습니다. 클러스터를 생성하기 전에 이러한 옵션을 구성하는 일반적인 절차는 다음과 동일합니다.
ClusterBootstrap
개체 및 참조하는 모든 사용자 지정 개체(예: CalicoConfig
개체)의 개체 규격을 생성합니다.
Cluster
개체 자체의 개체 규격을 생성합니다.
모든 개체 규격의 metadata
는 생성하려는 클러스터의 이름 및 네임스페이스를 포함합니다. 예:
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
name: MY-CLUSTER
namespace: MY-NAMESPACE
사용자 지정에는 주석과 같은 추가 메타데이터가 필요할 수 있습니다.
Cluster
정의를 포함한 모든 개체 규격을 단일 파일로 연결합니다. 규격을 3개의 대시(---
)로 구성된 줄로 구분합니다.
개체 규격을 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
파일을 편집하지 마십시오.
해당 인프라의 클러스터 구성 항목으로 진행합니다.