이 항목에서는 독립형 관리 클러스터를 사용하여 Microsoft Azure에 배포하기 전에 플랫 구성 파일 또는 Kubernetes 스타일 개체 규격을 사용하여 TKG(Tanzu Kubernetes Grid) 워크로드 클러스터를 구성하는 방법을 설명합니다.
구성 파일 및 개체 규격을 사용하여 워크로드 클러스터를 구성하는 방법에 대한 일반 정보는 구성 파일 및 개체 규격을 참조하십시오.
클러스터의 구성 파일 또는 개체 규격 외부에서 일부 구성이 필요한 Azure 전용 워크로드 클러스터 기능을 사용하려면 Azure에서 클러스터를 참조하십시오.
워크로드 클러스터를 Azure에 배포하기 전에 구성하려면 클러스터 구성 파일 또는 Kubernetes 스타일 개체 규격 파일을 생성합니다. 이러한 파일 중 하나를 tanzu cluster create
의 -f
옵션에 전달하면 Tanzu CLI는 파일에 정의된 구성 정보를 사용하여 Azure 계정에 연결하고 클러스터에서 사용할 리소스를 생성합니다.
워크로드 클러스터를 Azure에 배포할 때 지정해야 하는 전체 옵션 목록은 구성 파일 변수 참조를 참조하십시오.
클러스터 구성 파일을 생성하려면 아래의 워크로드 클러스터 템플릿을 사용할 수 있습니다. 구성 파일을 생성한 후 워크로드 클러스터 생성으로 진행합니다.
아래 템플릿에는 Azure에서 워크로드 클러스터를 배포하는 것과 관련된 모든 옵션이 포함되어 있습니다. 이 템플릿을 복사하여 워크로드 클러스터를 Azure에 배포하도록 업데이트할 수 있습니다.
필수 옵션의 주석 처리를 제거했습니다. 선택 사항 설정을 주석 처리했습니다. 기본값은 해당되는 경우 포함됩니다.
Azure 전용 워크로드 클러스터에 변수를 구성하는 방식은 관리 클러스터와 워크로드 클러스터 모두에 대해 동일합니다. 변수를 구성하는 방법에 대한 자세한 내용은 구성 파일에서 관리 클러스터 배포 및 Azure용 관리 클러스터 구성을 참조하십시오.
#! ---------------------------------------------------------------------
#! Cluster creation basic configuration
#! ---------------------------------------------------------------------
# CLUSTER_NAME:
CLUSTER_PLAN: dev
NAMESPACE: default
# CLUSTER_API_SERVER_PORT:
CNI: antrea
#! ---------------------------------------------------------------------
#! Node configuration
#! ---------------------------------------------------------------------
# SIZE:
# CONTROLPLANE_SIZE:
# WORKER_SIZE:
# AZURE_CONTROL_PLANE_MACHINE_TYPE: "Standard_D2s_v3"
# AZURE_NODE_MACHINE_TYPE: "Standard_D2s_v3"
# CONTROL_PLANE_MACHINE_COUNT: 1
# WORKER_MACHINE_COUNT: 1
# WORKER_MACHINE_COUNT_0:
# WORKER_MACHINE_COUNT_1:
# WORKER_MACHINE_COUNT_2:
# AZURE_CONTROL_PLANE_OS_DISK_SIZE_GIB: 128
# AZURE_CONTROL_PLANE_OS_DISK_STORAGE_ACCOUNT_TYPE: Premium_LRS
# AZURE_NODE_OS_DISK_SIZE_GIB: 128
# AZURE_NODE_OS_DISK_STORAGE_ACCOUNT_TYPE: Premium_LRS
# AZURE_CONTROL_PLANE_DATA_DISK_SIZE_GIB: 256
# AZURE_ENABLE_NODE_DATA_DISK: false
# AZURE_NODE_DATA_DISK_SIZE_GIB: 256
#! ---------------------------------------------------------------------
#! Azure Configuration
#! ---------------------------------------------------------------------
AZURE_ENVIRONMENT: "AzurePublicCloud"
AZURE_TENANT_ID:
AZURE_SUBSCRIPTION_ID:
AZURE_CLIENT_ID:
AZURE_CLIENT_SECRET:
AZURE_LOCATION:
AZURE_SSH_PUBLIC_KEY_B64:
# AZURE_ENABLE_ACCELERATED_NETWORKING: true
# AZURE_RESOURCE_GROUP: ""
# AZURE_VNET_RESOURCE_GROUP: ""
# AZURE_VNET_NAME: ""
# AZURE_VNET_CIDR: "10.0.0.0/16"
# AZURE_CONTROL_PLANE_SUBNET_NAME: ""
# AZURE_CONTROL_PLANE_SUBNET_CIDR: "10.0.0.0/24"
# AZURE_CONTROL_PLANE_SUBNET_SECURITY_GROUP: ""
# AZURE_NODE_SUBNET_NAME: ""
# AZURE_NODE_SUBNET_CIDR: "10.0.1.0/24"
# AZURE_NODE_SUBNET_SECURITY_GROUP: ""
# AZURE_NODE_AZ: ""
# AZURE_NODE_AZ_1: ""
# AZURE_NODE_AZ_2: ""
# AZURE_CUSTOM_TAGS:
# AZURE_ENABLE_PRIVATE_CLUSTER: false
# AZURE_FRONTEND_PRIVATE_IP: "10.0.0.100"
# AZURE_ENABLE_CONTROL_PLANE_OUTBOUND_LB: false
# AZURE_ENABLE_NODE_OUTBOUND_LB: false
# AZURE_CONTROL_PLANE_OUTBOUND_LB_FRONTEND_IP_COUNT: 1
# AZURE_NODE_OUTBOUND_LB_FRONTEND_IP_COUNT: 1
# AZURE_NODE_OUTBOUND_LB_IDLE_TIMEOUT_IN_MINUTES: 4
# AZURE_IMAGE_ID:
# AZURE_IMAGE_RESOURCE_GROUP:
# AZURE_IMAGE_NAME:
# AZURE_IMAGE_SUBSCRIPTION_ID:
# AZURE_IMAGE_GALLERY:
# AZURE_IMAGE_PUBLISHER:
# AZURE_IMAGE_OFFER:
# AZURE_IMAGE_SKU:
# AZURE_IMAGE_THIRD_PARTY:
# AZURE_IMAGE_VERSION:
# AZURE_IDENTITY_NAME:
# AZURE_IDENTITY_NAMESPACE:
#! ---------------------------------------------------------------------
#! 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: ""
Azure의 Tanzu Kubernetes Grid 관리 및 워크로드 클러스터를 사용하려면 클러스터의 VNet과 해당 VNet 리소스 그룹에 두 개의 NSG(네트워크 보안 그룹)를 정의해야 합니다.
CLUSTER-NAME-controlplane-nsg
이고 클러스터의 제어부 서브넷과 연결된 NSG이름이 CLUSTER-NAME-node-nsg
이고 클러스터의 Worker 노드 서브넷과 연결된 NSG
여기서 CLUSTER-NAME
은 클러스터의 이름입니다.
워크로드 클러스터에 기존 VNet을 지정하는 경우 Azure에서 이러한 NSG를 생성해야 합니다. 워크로드 클러스터의 기존 VNet은 구성 파일에 AZURE_VNET_NAME
으로 지정됩니다.
클러스터에 기존 VNet을 지정하지 않으면 배포 프로세스에서 새 VNet과 필요한 NSG를 생성합니다.
클러스터의 VNet, 리소스 그룹, 서브넷을 구성하는 방법은 구성 파일 변수 참조의 Microsoft Azure 표를 참조하십시오.
클러스터를 배포하지 않고 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
그런 다음 개체에서 클래스 기반 클러스터 생성에 설명된 대로 이 개체 규격을 사용하여 클러스터를 배포할 수 있습니다.
워크로드 클러스터 생성으로 진행합니다.