이 항목에서는 독립형 관리 클러스터를 사용하여 vSphere에 배포하기 전에 플랫 구성 파일 또는 Kubernetes 스타일 개체 규격을 사용하여 TKG(Tanzu Kubernetes Grid) 워크로드 클러스터를 구성하는 방법을 설명합니다. 배포용 워크로드 클러스터를 vSphere with Tanzu에 구성하려면 Supervisor 클러스터가 있는 vSphere 구성 파일을 참조하십시오.
구성 파일 및 개체 규격을 사용하여 워크로드 클러스터를 구성하는 방법에 대한 일반 정보는 구성 파일 및 개체 규격을 참조하십시오.
클러스터의 구성 파일 또는 개체 규격 외부에서 일부 구성이 필요한 vSphere 전용 워크로드 클러스터 기능을 사용하려면 vSphere에서 클러스터를 참조하십시오.
워크로드 클러스터를 vSphere에 배포하기 전에 구성하려면 클러스터 구성 파일 또는 Kubernetes 스타일 개체 규격 파일을 생성합니다. 이러한 파일 중 하나를 tanzu cluster create
의 -f
옵션에 전달하면 Tanzu CLI는 파일에 정의된 구성 정보를 사용하여 vSphere 계정에 연결하고 클러스터에서 사용할 리소스를 생성합니다. 예를 들어, 제어부 및 Worker 노드 VM의 표준 크기를 지정하거나 제어부 및 Worker 노드의 CPU, 메모리, 디스크 크기를 명시적으로 구성할 수도 있습니다. 사용자 지정 이미지 템플릿을 사용하는 경우 노드 VM을 생성하는 데 사용할 템플릿을 식별할 수 있습니다.
워크로드 클러스터를 vSphere 배포할 때 지정해야 하는 전체 옵션 목록은 구성 파일 변수 참조를 참조하십시오.
클러스터 구성 파일을 생성하려면 아래의 워크로드 클러스터 템플릿을 사용할 수 있습니다. 구성 파일을 생성한 후 워크로드 클러스터 생성으로 진행합니다.
아래 템플릿에는 vSphere에서 워크로드 클러스터를 배포하는 것과 관련된 모든 옵션이 포함되어 있습니다. 이 템플릿을 복사하여 워크로드 클러스터를 vSphere에 배포하도록 업데이트할 수 있습니다.
필수 옵션의 주석 처리를 제거했습니다. 선택 사항 설정을 주석 처리했습니다. 기본값은 해당되는 경우 포함됩니다.
템플릿 아래 섹션에 설명된 옵션을 제외하고 vSphere와 관련된 워크로드 클러스터에 변수를 구성하는 방식은 관리 클러스터와 워크로드 클러스터 모두에 대해 동일합니다. 변수를 구성하는 방법에 대한 자세한 내용은 구성 파일에서 관리 클러스터 배포 및 vSphere용 관리 클러스터 구성을 참조하십시오.
#! ---------------------------------------------------------------------
#! Basic cluster creation configuration
#! ---------------------------------------------------------------------
# CLUSTER_NAME:
CLUSTER_PLAN: dev
NAMESPACE: default
# CLUSTER_API_SERVER_PORT: # For deployments without NSX Advanced Load Balancer
CNI: antrea
#! ---------------------------------------------------------------------
#! Node configuration
#! ---------------------------------------------------------------------
# SIZE:
# CONTROLPLANE_SIZE:
# WORKER_SIZE:
# VSPHERE_NUM_CPUS: 2
# VSPHERE_DISK_GIB: 40
# VSPHERE_MEM_MIB: 4096
# VSPHERE_CONTROL_PLANE_NUM_CPUS: 2
# VSPHERE_CONTROL_PLANE_DISK_GIB: 40
# VSPHERE_CONTROL_PLANE_MEM_MIB: 8192
# VSPHERE_WORKER_NUM_CPUS: 2
# VSPHERE_WORKER_DISK_GIB: 40
# VSPHERE_WORKER_MEM_MIB: 4096
# CONTROL_PLANE_MACHINE_COUNT:
# WORKER_MACHINE_COUNT:
# WORKER_MACHINE_COUNT_0:
# WORKER_MACHINE_COUNT_1:
# WORKER_MACHINE_COUNT_2:
#! ---------------------------------------------------------------------
#! vSphere configuration
#! ---------------------------------------------------------------------
#VSPHERE_CLONE_MODE: "fullClone"
VSPHERE_NETWORK: VM Network
# VSPHERE_TEMPLATE:
# VSPHERE_TEMPLATE_MOID:
# IS_WINDOWS_WORKLOAD_CLUSTER: false
# VIP_NETWORK_INTERFACE: "eth0"
VSPHERE_SSH_AUTHORIZED_KEY:
VSPHERE_USERNAME:
VSPHERE_PASSWORD:
# VSPHERE_REGION:
# VSPHERE_ZONE:
# VSPHERE_AZ_0:
# VSPHERE_AZ_1:
# VSPHERE_AZ_2:
VSPHERE_SERVER:
VSPHERE_DATACENTER:
VSPHERE_RESOURCE_POOL:
VSPHERE_DATASTORE:
VSPHERE_FOLDER:
# VSPHERE_STORAGE_POLICY_ID
# VSPHERE_WORKER_PCI_DEVICES:
# VSPHERE_CONTROL_PLANE_PCI_DEVICES:
# VSPHERE_IGNORE_PCI_DEVICES_ALLOW_LIST:
# VSPHERE_CONTROL_PLANE_CUSTOM_VMX_KEYS:
# VSPHERE_WORKER_CUSTOM_VMX_KEYS:
# WORKER_ROLLOUT_STRATEGY: "RollingUpdate"
# VSPHERE_CONTROL_PLANE_HARDWARE_VERSION:
# VSPHERE_WORKER_HARDWARE_VERSION:
VSPHERE_TLS_THUMBPRINT:
VSPHERE_INSECURE: false
# VSPHERE_CONTROL_PLANE_ENDPOINT: # Required for Kube-Vip
# VSPHERE_CONTROL_PLANE_ENDPOINT_PORT: 6443
# VSPHERE_ADDITIONAL_FQDN:
AVI_CONTROL_PLANE_HA_PROVIDER: false
#! ---------------------------------------------------------------------
#! NSX specific configuration for enabling NSX routable pods
#! ---------------------------------------------------------------------
# NSXT_POD_ROUTING_ENABLED: false
# NSXT_ROUTER_PATH: ""
# NSXT_USERNAME: ""
# NSXT_PASSWORD: ""
# NSXT_MANAGER_HOST: ""
# NSXT_ALLOW_UNVERIFIED_SSL: false
# NSXT_REMOTE_AUTH: false
# NSXT_VMC_ACCESS_TOKEN: ""
# NSXT_VMC_AUTH_HOST: ""
# NSXT_CLIENT_CERT_KEY_DATA: ""
# NSXT_CLIENT_CERT_DATA: ""
# NSXT_ROOT_CA_DATA: ""
# NSXT_SECRET_NAME: "cloud-provider-vsphere-nsxt-credentials"
# NSXT_SECRET_NAMESPACE: "kube-system"
#! ---------------------------------------------------------------------
#! Common configuration
#! ---------------------------------------------------------------------
# TKG_CUSTOM_IMAGE_REPOSITORY: ""
# TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY: false
# TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: ""
# TKG_HTTP_PROXY: ""
# TKG_HTTPS_PROXY: ""
# TKG_NO_PROXY: ""
# TKG_PROXY_CA_CERT: ""
ENABLE_AUDIT_LOGGING: false
ENABLE_DEFAULT_STORAGE_CLASS: true
CLUSTER_CIDR: 100.96.0.0/11
SERVICE_CIDR: 100.64.0.0/13
# OS_NAME: ""
# OS_VERSION: ""
# OS_ARCH: ""
#! ---------------------------------------------------------------------
#! Autoscaler configuration
#! ---------------------------------------------------------------------
ENABLE_AUTOSCALER: false
# AUTOSCALER_MAX_NODES_TOTAL: "0"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_ADD: "10m"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_DELETE: "10s"
# AUTOSCALER_SCALE_DOWN_DELAY_AFTER_FAILURE: "3m"
# AUTOSCALER_SCALE_DOWN_UNNEEDED_TIME: "10m"
# AUTOSCALER_MAX_NODE_PROVISION_TIME: "15m"
# AUTOSCALER_MIN_SIZE_0:
# AUTOSCALER_MAX_SIZE_0:
# AUTOSCALER_MIN_SIZE_1:
# AUTOSCALER_MAX_SIZE_1:
# AUTOSCALER_MIN_SIZE_2:
# AUTOSCALER_MAX_SIZE_2:
#! ---------------------------------------------------------------------
#! Antrea CNI configuration
#! ---------------------------------------------------------------------
# ANTREA_NO_SNAT: false
# ANTREA_DISABLE_UDP_TUNNEL_OFFLOAD: false
# ANTREA_TRAFFIC_ENCAP_MODE: "encap"
# ANTREA_EGRESS_EXCEPT_CIDRS: ""
# ANTREA_NODEPORTLOCAL_ENABLED: true
# ANTREA_NODEPORTLOCAL_PORTRANGE: 61000-62000
# ANTREA_PROXY_ALL: false
# ANTREA_PROXY_NODEPORT_ADDRS: ""
# ANTREA_PROXY_SKIP_SERVICES: ""
# ANTREA_PROXY_LOAD_BALANCER_IPS: false
# ANTREA_FLOWEXPORTER_COLLECTOR_ADDRESS: "flow-aggregator.flow-aggregator.svc:4739:tls"
# ANTREA_FLOWEXPORTER_POLL_INTERVAL: "5s"
# ANTREA_FLOWEXPORTER_ACTIVE_TIMEOUT: "30s"
# ANTREA_FLOWEXPORTER_IDLE_TIMEOUT: "15s"
# ANTREA_KUBE_APISERVER_OVERRIDE:
# ANTREA_TRANSPORT_INTERFACE:
# ANTREA_TRANSPORT_INTERFACE_CIDRS: ""
# ANTREA_MULTICAST_INTERFACES: ""
# ANTREA_MULTICAST_IGMPQUERY_INTERVAL: "125s"
# ANTREA_TUNNEL_TYPE: geneve
# ANTREA_ENABLE_USAGE_REPORTING: false
# ANTREA_ENABLE_BRIDGING_MODE: false
# ANTREA_DISABLE_TXCHECKSUM_OFFLOAD: false
# ANTREA_DNS_SERVER_OVERRIDE: ""
# ANTREA_MULTICLUSTER_ENABLE: false
# ANTREA_MULTICLUSTER_NAMESPACE: ""
클러스터를 vSphere에 배포하고 클러스터의 제어부 API에 기본 Kube-Vip 로드 밸런서를 사용하는 경우, VSPHERE_CONTROL_PLANE_ENDPOINT
를 설정하여 끝점을 지정해야 합니다. ALB(NSX Advanced Load Balancer)를 사용하는 경우 제어부 끝점을 특정 주소로 지정해야 하는 경우가 아니면 VSPHERE_CONTROL_PLANE_ENDPOINT
를 설정하지 마십시오. 이 경우 고정 IP 풀에 수동으로 추가한 NSX ALB IPAM 프로파일의 VIP 네트워크 범위 내에서 고정 주소를 사용합니다.
관리 클러스터와 워크로드 클러스터를 포함한 두 클러스터는 동일한 VSPHERE_CONTROL_PLANE_ENDPOINT
주소를 가질 수 없습니다.
클러스터를 배포하지 않고 Tanzu CLI를 사용하여 클러스터 구성 파일을 클래스 기반 워크로드 클러스터용 Kubernetes 스타일 개체 규격 파일로 변환할 수 있습니다.
tanzu cluster create
를 사용하여 생성하는 모든 클래스 기반 클러스터용 개체 규격 파일을 생성하려면 Tanzu CLI 구성에서 auto-apply-generated-clusterclass-based-configuration
기능이 false
로 설정되어 있는지 확인합니다. 이 기능은 기본적으로 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
그런 다음 개체에서 클래스 기반 클러스터 생성에 설명된 대로 이 개체 규격을 사용하여 클러스터를 배포할 수 있습니다.
개체 규격 파일 예는 Cluster
개체 및 하위 개체 예를 참조하십시오.
워크로드 클러스터 생성으로 진행합니다. 워크로드 클러스터를 vSphere 배포한 후에는 노드 DHCP 예약 및 끝점 DNS 레코드 구성(vSphere 전용)에 설명된 대로 노드 DHCP 예약 및 끝점 DNS를 구성해야 합니다.