이 항목에서는 vSphere 8 with Tanzu에 배포하기 전에 플랫 구성 파일 또는 Kubernetes 스타일 개체 규격을 사용하여 TKG(Tanzu Kubernetes Grid) 워크로드 클러스터를 구성하는 방법을 설명합니다. 배포용 워크로드 클러스터를 vSphere with Tanzu에 구성하려면 독립형 관리 클러스터가 있는 vSphere 구성 파일을 참조하십시오.
구성 파일 및 개체 규격을 사용하여 워크로드 클러스터를 구성하는 방법에 대한 일반 정보는 구성 파일 및 개체 규격을 참조하십시오.
클러스터의 구성 파일 또는 개체 규격 외부에서 일부 구성이 필요한 vSphere 전용 워크로드 클러스터 기능을 사용하려면 vSphere에서 클러스터를 참조하십시오.
워크로드 클러스터를 vSphere with Tanzu에 배포하기 전에 구성하려면 TKC 클러스터를 구성하는 경우 클래스 기반 클러스터 또는 클러스터 구성 파일을 구성하는 경우 Kubernetes 스타일 개체 규격 파일을 생성합니다. 이러한 파일 중 하나를 tanzu cluster create
의 -f
옵션에 전달하면 Tanzu CLI는 파일에 정의된 구성 정보를 사용하여 vSphere 계정에 연결하고 클러스터에서 사용할 리소스를 생성합니다.
구성하려면 다음을 수행합니다.
위의 클러스터 유형에 대한 자세한 내용은 워크로드 클러스터 유형을 참조하십시오.
배포용 워크로드 클러스터를 vSphere 8 with Tanzu로 구성하려면 다음을 수행합니다.
Cluster
개체 규격을 생성하거나 조정합니다. vSphere 8 설명서에는 작동할 Cluster
개체 규격 예제가 있습니다.
규격 파일의 topology
블록에서 VM 유형, 규모 및 기타 기본 클러스터 구성을 설정합니다. topology
블록에 대한 자세한 내용은 아래의 클래스 기반 클러스터 개체 및 토폴로지 구조 및 ClusterClass 토폴로지 변수를 참조하십시오.
(선택 사항) 클러스터 인프라의 일회성 컨테이너 인터페이스 설정과 같이 Cluster
개체 자체에서 설정할 수 없는 특성을 사용자 지정하려면 일회성 인프라 설정 구성을 참조하십시오.
유형이 tanzukubernetescluster
인 Cluster
개체에서 구성할 수 있는 최상위 설정은 다음과 같이 구성됩니다. 구성할 수 있는 variables
는 ClusterClass 토폴로지 변수를 참조하십시오.
spec:
clusterNetwork
apiServerPort
services
cidrBlocks
pods
cidrBlocks
serviceDomain
controlPlaneEndpoint
host
port
topology
class
version
rolloutAfter
controlPlane
metadata
replicas
nodeDrainTimeout
nodeDeletionTimeout
machineHealthCheck
maxUnhealthy
nodeStartupTimeout
unhealthyConditions
workers
machineDeployments
metadata
- class
name
failureDomain
replicas
nodeDrainTimeout
nodeDeletionTimeout
machineHealthCheck
maxUnhealthy
nodeStartupTimeout
unhealthyConditions
variables
name
value
variables
name
value
이러한 필드는 Cluster
개체 유형 규격 cluster_types.go에 설정됩니다.
json:
설정은 필드가 선택 사항인지 여부를 나타냅니다. 선택적 필드에는 omitempty
설정이 있습니다.Topology
구조체에는 유형 규격에 *Workers
가 포함되므로 workers
개체 규격의 topology
아래에 들여쓰기됩니다.- class
와 variables
옵션은 클러스터의 spec.topology.class
값으로 설정된 Cluster
개체의 클러스터 클래스에 정의됩니다. 예를 들어, vSphere with Tanzu에서는 워크로드 클러스터 유형에 설명된 TanzuKubernetesCluster
와는 다른 tanzukubernetescluster
라는 ClusterClass
개체입니다.
구성 가능한 variables
에는 ClusterClass 토폴로지 변수에 나열된 것처럼 vmClass
, storageClass
, proxy
, nodeLabels
, extensionCert
및 기타 여러 가지 변수가 있습니다. 이러한 변수는 클러스터 개체의 기초가 되는 개체(예: KubeAdmConfig
및 Machine
개체)의 설정을 구성하고 재정의합니다.
vSphere with Tanzu 워크로드 클러스터의 TKG용 기본 ClusterClass
인 tanzukubernetescluster
클래스는 topology.variables
및 topology.workers.machineDeployments.variables
에 설정된 다음 변수를 지원합니다. 노드 풀과 같은 시스템 배포와 관련된 변수 설정은 글로벌 설정을 재정의합니다.
이러한 변수는 vmClass
및 storageClass
개체에 설정된 proxy
, KubeAdmConfig
, Machine
설정과 같이 클러스터 개체의 기본이 되는 개체의 설정을 구성하고 재정의합니다. 이를 통해 사용자는 하위 수준 개체 규격을 편집하지 않고도 Cluster
개체 규격 내에서 클러스터를 완전히 구성할 수 있습니다.
clusterEncryptionConfigYaml
controlPlaneVolumes
defaultRegistrySecret
defaultStorageClass
extensionCert
nodePoolLabels
nodePoolTaints
nodePoolVolumes
ntp
proxy
storageClass
storageClasses
TKR_DATA
trust
user
vmClass
vSphere 8 설명서의 다음 항목에서는 storageClass
및 vmClass
설정을 변경하여 실행 중인 클러스터를 재구성하는 방법을 설명합니다.
vSphere 8에서 TKC(레거시) 워크로드 클러스터용 클러스터 구성 파일을 생성하려면 이전 배포의 기존 구성 파일을 vSphere with Tanzu로 복사하여 업데이트할 수 있습니다. 또는 빈 템플릿을 사용하여 파일을 처음부터 생성할 수 있습니다.
vSphere with Tanzu Supervisor가 배포한 워크로드 클러스터를 구성하려면 변수를 설정하여 스토리지 클래스, VM 클래스, 서비스 도메인, 네임스페이스, 클러스터를 생성하는 데 필요한 기타 값을 정의합니다. 다음 표에는 TKC 기반 클러스터의 구성 파일에 포함할 수 있는 변수가 나열되어 있습니다. 또는 로컬 환경 변수로 설정할 수 있습니다.
필수 변수 | ||
---|---|---|
변수 | 값 유형 또는 예 | 설명 |
INFRASTRUCTURE_PROVIDER |
tkg-service-vsphere |
항상 vSphere with Tanzu에서 TanzuKubernetesCluster 개체에 대한 tkg-service-vsphere . |
CLUSTER_PLAN |
dev prod 또는 사용자 지정 계획 |
노드 수를 설정합니다. |
CLUSTER_CIDR |
CIDR 범위 | 포드에 사용할 CIDR 범위. 권장 범위는 100.96.0.0/11 입니다. 권장 범위를 사용할 수 없는 경우에만 이 값을 변경합니다. |
SERVICE_CIDR |
Kubernetes 서비스에 사용할 CIDR 범위. 권장 범위는 100.64.0.0/13 입니다. 권장 범위를 사용할 수 없는 경우에만 이 값을 변경합니다. |
|
SERVICE_DOMAIN |
도메인 | 예: DNS가 없는 경우 my.example.com 또는 cluster.local . 노드에 FQDN을 할당하려는 경우 DNS 조회가 필요합니다. |
CONTROL_PLANE_VM_CLASS |
vSphere with Tanzu 표준 VM 클래스(예: guaranteed-large ).vSphere with Tanzu 설명서에서 Supervisor에서 TKG 클러스터와 함께 가상 시스템 클래스 사용을 참조하십시오. |
제어부 노드의 VM 클래스 |
WORKER_VM_CLASS |
Worker 노드의 VM 클래스 | |
선택적 변수 | ||
변수 | 값 유형 또는 예 | 설명 |
CLUSTER_NAME |
문자열 | CLUSTER-NAME 인수에 의해 재정의되어 tanzu cluster create 로 전달됩니다.이 이름은 RFC 952에 설명된 DNS 호스트 이름 요구 사항을 준수하고 RFC 1123에 수정된 DNS 호스트 이름 요구 사항을 준수해야 하며 42자 이하여야 합니다. Note: 모든 네임스페이스의 모든 워크로드 클러스터에 고유한 이름을 제공해야 합니다. 다른 네임스페이스에서 사용 중인 클러스터 이름을 지정하면 클러스터 배포가 오류와 함께 실패합니다. |
NAMESPACE |
네임스페이스. 기본값은 default 입니다. |
클러스터를 배포할 네임스페이스입니다. Supervisor의 네임스페이스를 찾으려면 kubectl get namespaces 를 실행합니다. |
CNI |
antrea 또는 calico . 기본값: antrea |
호스팅된 워크로드에 대한 컨테이너 네트워킹 인터페이스(Antrea 또는 Calico). |
CONTROL_PLANE_MACHINE_COUNT |
정수. CONTROL_PLANE_MACHINE_COUNT 는 홀수여야 합니다.기본값은 CLUSTER_PLAN 에서 설정된 대로 dev 의 경우 1 , prod 의 경우 3 입니다. |
dev 또는 prod 계획 기본값보다 더 많은 제어부 노드가 있는 워크로드 클러스터를 배포합니다. |
WORKER_MACHINE_COUNT |
Worker 노드가 dev 또는 prod 계획 기본값보다 많은 워크로드 클러스터를 배포합니다. |
|
STORAGE_CLASSES |
빈 문자열 "" 을 사용하면 클러스터가 네임스페이스의 모든 스토리지 클래스를 사용하거나 kubectl get storageclasses 의 쉼표로 구분된 값 목록을 사용할 수 있습니다(예: "SC-1,SC-2,SC-3" ). |
노드 사용자 지정에 사용할 수 있는 스토리지 클래스. |
DEFAULT_STORAGE_CLASS |
위에서와 같이 기본값이 없는 경우 빈 문자열 "" 또는 CLI의 값. |
제어부 또는 Worker의 기본 스토리지 클래스. |
CONTROL_PLANE_STORAGE_CLASS |
kubectl get storageclasses 에서 반환된 값 |
제어부 노드의 기본 스토리지 클래스. |
WORKER_STORAGE_CLASS |
Worker 노드의 기본 스토리지 클래스. | |
NODE_POOL_0_NAME |
문자열 | 노드 풀 이름, 레이블, taint. TanzuKubernetesCluster 는 하나의 노드 풀만 있을 수 있습니다. |
NODE_POOL_0_LABELS |
문자열의 JSON 목록(예: ["label1", "label2"] |
|
NODE_POOL_0_TAINTS |
키-값 쌍 문자열의 JSON 목록(예: [{"key1": "value1"}, {"key2": "value2"}] |
다음 중 하나를 수행하여 위의 변수를 설정할 수 있습니다.
Tanzu CLI --file
옵션으로 전달된 클러스터 구성 파일에 포함합니다. 예:
CONTROL_PLANE_VM_CLASS: guaranteed-large
명령줄에서 export
(Linux 및 macOS) 또는 SET
(Windows)을 실행하여 로컬 환경 변수로 설정합니다. 예:
export CONTROL_PLANE_VM_CLASS=guaranteed-large
참고워크로드 클러스터의 고유한 프록시 설정을 구성하려는 경우
TKG_HTTP_PROXY
,TKG_HTTPS_PROXY
,NO_PROXY
를 환경 변수로 설정한 다음 Tanzu CLI를 사용하여 클러스터를 생성할 수 있습니다. 이러한 변수는 vSphere with Tanzu의 기존 프록시 구성보다 우선합니다.
워크로드 클러스터 생성으로 진행합니다. 워크로드 클러스터를 vSphere 배포한 후에는 노드 DHCP 예약 및 끝점 DNS 레코드 구성(vSphere 전용)에 설명된 대로 노드 DHCP 예약 및 끝점 DNS를 구성해야 합니다.