클러스터 클래스 변수 변환에 대한 구성 파일

이 항목에서는 워크로드 클러스터 구성 파일의 변수가 클래스 기반 Cluster 개체 및 ClusterBootstrap 및 TKG(기타 하위 Tanzu Kubernetes Grid 개체) 내의 변수 설정으로 변환되는 방법을 설명합니다. Cluster 개체 및 하위 개체의 예는 아래 Cluster 개체 및 하위 개체 예를 참조하십시오.

개요: 구성 파일 및 클러스터 클래스 변수

구성 파일 변수와 클래스 기반 클러스터 변수는 다음과 같습니다.

  • 구성 파일 변수는 다음과 같습니다.

  • 클래스 기반 클러스터 변수 설정Cluster 또는 ClusterBootstrap 개체 규격 내에서 중첩된 YAML 설정입니다.

    • Cluster 개체 설정은 다음과 같습니다.

      • 대부분의 클러스터 설정을 사용할 수 있으며 임의로 변경할 수 있습니다.
      • ClusterClass 개체 집합을 클러스터의 spec.topology.class 값으로 정의합니다.
      • spec.topology 아래의 controlPlane, workers 또는 variables 블록에 설정합니다.
      • 설정 예:

        variables:
        - name: imageRepository
          value:
            host: stg-project.vmware.com
        
    • ClusterBootstrap 설정은 컨테이너 네트워킹 및 기존 클러스터에서 변경할 수 없는 기타 낮은 수준의 인프라에 대한 몇 가지 일회성 설정입니다.

클래스 기반 클러스터 생성에 설명된 대로 클러스터 구성 파일을 사용하여 tanzu cluster create 명령을 실행하면 Tanzu CLI가 이 변환을 수행합니다.

노드 구성

아래 표에는 제어부 및 작업자 노드를 구성하기 위한 변수와 노드 인스턴스가 실행하는 운영 체제가 나열되어 있습니다. 구성 파일 변수 열의 변수에 대한 자세한 내용은 구성 파일 변수 참조의 노드 구성을 참조하십시오.

Class 기반 클러스터 개체 구조 열에서 모든 name/value 쌍 설정은 Cluster 아래의 spec.topology.variables 개체 정의에 있습니다. 이 열의 예제 코드는 vSphere Cluster 개체에 적용됩니다. AWS와 Azure의 개체 구조가 다를 수 있습니다.

구성 파일 변수 클래스 기반 클러스터 개체 구조
 OS_NAME: ubuntu OS_VERSION: 20.04 OS_ARCH: amd64
 metadata: annotations: osInfo: ubuntu,20.04,amd64 
 CONTROL_PLANE_MACHINE_COUNT: 3 
 controlPlane: … replicas: 3 
 CONTROLPLANE_SIZE: large SIZE: large
값은 인프라를 기준으로 machine 설정으로 변환됩니다.
SIZE는 제어부 및 작업자 모두에 적용됩니다.
 - name: controlPlane value: machine: diskGiB: 40 memoryMiB: 16384 numCPUs: 4 
 CONTROL_PLANE_NODE_SEARCH_DOMAINS: corp.local, example.com 
 - name: controlPlane value: … network: … searchDomains: - corp.local - example.com 
 CONTROL_PLANE_NODE_LABELS: ‘key1=value1,key2=value2’ 
 - name: controlPlane value: … nodeLabels: - key: key1 value: value1 - key: key2 value: value2 
 WORKER_MACHINE_COUNT: 6 
 worker: machineDeployments: - class: tkg-worker … replicas: 6 
 WORKER_SIZE: extra-large SIZE: extra-large
값은 인프라를 기준으로 machine 설정으로 변환됩니다.
SIZE는 제어부 및 작업자 모두에 적용됩니다.
 - name: worker value: … machine: diskGiB: 80 memoryMiB: 32768 numCPUs: 8 
 WORKER_NODE_SEARCH_DOMAINS: corp.local, example.com
 - name: worker value: … network: searchDomains: - corp.local - example.com 
 CUSTOM_TDNF_REPOSITORY_CERTIFICATE: “YPdeNjLW[…]”
 - name: customTDNFRepository value: certificate: YPdeNjLW[…] 
 WORKER_ROLLOUT_STRATEGY: RollingUpdate
 worker: machineDeployments: - class: tkg-worker failureDomain: “1” metadata: annotations: run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu,os-version=2004 name: md-0 replicas: 1 strategy: type: RollingUpdate 

포드 보안 승인(PSA) 컨트롤러

아래 표에는 포드 보안 승인 컨트롤러에 대한 포드 보안 표준을 구성하기 위한 변수가 나열됩니다. 구성 파일 변수 열의 변수에 대한 자세한 내용은 구성 파일 변수 참조의 포드 보안 승인 컨트롤러의 포드 보안 표준을 참조하십시오.

Class 기반 클러스터 개체 구조 열에서 모든 name/value 쌍 설정은 Cluster 아래의 spec.topology.variables 개체 정의에 있습니다.

구성 파일 변수 클래스 기반 클러스터 개체 구조
 POD_SECURITY_STANDARD_DEACTIVATED: false POD_SECURITY_STANDARD_AUDIT: 권한 있는 POD_SECURITY_STANDARD_WARN: 권한 있는 POD_SECURITY_STANDARD_ENFORCE: 기준선 
 - 이름: podSecurityStandard 값: 비활성화됨: false audit: “privileged” enforce: “privileged” warn: “baseline” auditVersion: “v1.26” enforceVersion: “v1.26” warnVersion: “v1.26” exemptions: namespaces: ["kube-system,tkg-system"] 

클러스터 자동조정기

ENABLE_AUTOSCALERtrue이면 Tanzu CLI는 클러스터 Autoscaler용 Deployment 개체를 생성하고 클러스터 Autoscaler annotationsCluster 개체에 추가합니다. 아래의 구성 파일 변수 열의 변수에 대한 자세한 내용은 구성 파일 변수 참조의 클러스터 자동조정기를 참조하십시오.

구성 파일 변수 클래스 기반 클러스터 및 자동조정기 배포 개체 구조
 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_MAX_NODES_TOTAL: 0 
클러스터 자동조정기 Deployment 개체에서:
 spec: containers: - args: … - –scale-down-delay-after-add=10m - –scale-down-delay-after-delete=10s - –scale-down-delay-after-failure=3m - –scale-down-unneeded-time=10m - –max-node-provision-time=15m - –max-nodes-total=0
 AUTOSCALER_MAX_SIZE_0: 12 AUTOSCALER_MIN_SIZE_0: 8 AUTOSCALER_MAX_SIZE_1: 10 AUTOSCALER_MIN_SIZE_1: 6 AUTOSCALER_MAX_SIZE_2: 8 AUTOSCALER_MIN_SIZE_2: 4 
AUTOSCALER_MAX_SIZE_AUTOSCALER_MIN_SIZE_ are not set, the annotations settings take the values of WORKER_MACHINE_COUNT_* 값을 사용합니다.
Cluster 개체의 spec.topology.workers에서:
 machineDeployments: - class: tkg-worker metadata: annotations: cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "12" cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: “8” … name: md-0 - class: tkg-worker metadata: annotations: cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "10" cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: “6” … name: md-1 …

프록시 및 개인 이미지 레지스트리

이 섹션에는 프록시 및 개인 이미지 레지스트리를 사용하기 위한 변수(예: 인터넷 제한 배포)가 나열되어 있습니다.

Class 기반 클러스터 개체 구조 열에서 모든 name/value 쌍 설정은 Cluster 아래의 spec.topology.variables 개체 정의에 있습니다.

구성 파일 변수 클래스 기반 클러스터 개체 구조 참고
 TKG_CUSTOM_IMAGE_REPOSITORY: example.com/yourproject TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY: true
 - name: imageRepository value: host: example.com/yourproject tlsCertificateValidation: enabled: false
tldCertificateValidation.enabledTKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY의 부울 설정을 반대로 적용하며 값이 true인 경우 기록되지 않습니다.
 TKG_HTTP_PROXY_ENABLED: true TKG_HTTP_PROXY: http://proxy.example.com:80 TKG_HTTPS_PROXY: https://proxy.example.com:3128 TKG_NO_PROXY: .noproxy.example.com,noproxy.example.com,192.168.0.0/24
 - name: proxy value: httpProxy: http://proxy.example.com:80 httpsProxy: https://proxy.example.com:3128 noProxy: - .noproxy.example.com - noproxy.example.com - 192.168.0.0/24 - […]
내부적으로 Tanzu CLI는 프록시 구성에 설명된 대로 구성 파일에 설정되지 않은 noProxy 목록 값에 추가됩니다.
 TKG_PROXY_CA_CERT: “LS0tLSBL[…]” TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: MIIEpgIH[…]"
 - name: trust value: - name: proxy data: LS0tLSBL[…] - name: imageRepository data: MIIEpgIH[…]
값은 base64로 인코딩된 CA 인증서입니다.
TKG_PROXY_CA_CERTTKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE에 우선하고, trust imageRespository 값이 설정된 경우 trust proxy 값이 기록되지 않습니다.
 ADDITIONAL_IMAGE_REGISTRY_1: “example.com/otherregistry-1” ADDITIONAL_IMAGE_REGISTRY_1_SKIP_TLS_VERIFY: false ADDITIONAL_IMAGE_REGISTRY_1_CA_CERTIFICATE: “LS0tLSBL[…]” ADDITIONAL_IMAGE_REGISTRY_2: “example.com/otherregistry-2” ADDITIONAL_IMAGE_REGISTRY_2_SKIP_TLS_VERIFY: true ADDITIONAL_IMAGE_REGISTRY_3: “example.com/otherregistry-3” ADDITIONAL_IMAGE_REGISTRY_3_SKIP_TLS_VERIFY: false ADDITIONAL_IMAGE_REGISTRY_3_CA_CERTIFICATE: “MIIEpgIH[…]”
 - name: additionalImageRegistries value: - caCert: LS0tLSBL[…] host: example.com/otherregistry-1 skipTlsVerify: false - host: example.com/otherregistry-2 skipTlsVerify: true - caCert: MIIEpgIH[…] host: example.com/otherregistry-3 skipTlsVerify: false

공통 변수

다음 표에는 모든 대상 플랫폼에게 공통되는 변수가 나열되어 있습니다.

구성 파일 변수 열의 변수에 대한 자세한 내용은 구성 파일 변수 참조의 모든 대상 플랫폼에 대한 공통 변수를 참조하십시오.

Class 기반 클러스터 개체 구조 열에서 모든 name/value 쌍 설정은 Cluster 아래의 spec.topology.variables 개체 정의에 있습니다.

구성 파일 변수 클래스 기반 클러스터 개체 구조
 CLUSTER_NAME: my-cluster NAMESPACE: default
 metadata: name: my-cluster namespace: default
 CLUSTER_PLAN: dev
 metadata: annotations: tkg/plan: dev
 INFRASTRUCTURE_PROVIDER: vsphere
 topology: class: tkg-vsphere-default-v1.0.0 
 CLUSTER_API_SERVER_PORT: 6443
 - name: apiServerPort value: 6443
 CNI: antrea
 - name: cni value: antrea
 ENABLE_AUDIT_LOGGING: true
 - name: auditLogging value: enabled: true
 CLUSTER_CIDR: 100.96.0.0/11 SERVICE_CIDR: 100.64.0.0/13
 spec: clusterNetwork: pods: cidrBlocks: - 100.96.0.0/11 services: cidrBlocks: - 100.64.0.0/13
 CONTROLPLANE_CERTIFICATE_ROTATION_ENABLED: true CONTROLPLANE_CERTIFICATE_ROTATION_DAYS_BEFORE: 65
 - name: controlPlaneCertificateRotation value: activate: true daysBefore: 65

Antrea CNI

이 섹션에는 클러스터의 CNI(Antrea 컨테이너 네트워크 인터페이스)를 구성하기 위한 변수가 나열됩니다. 클래스 기반 클러스터 변수는 ClusterBootstrap 개체의 spec.cni.refName 속성에서 참조되는 AntreaConfig 개체에 상주합니다.

클래스 기반 클러스터는 해당 TKG 구성 파일 변수가 없는 많은 Antrea 구성 옵션을 지원합니다. 클래스 기반 Cluster 개체에 대해 설정할 수 있는 모든 Antrea 구성 옵션은 Antrea 설명서의 구성 게이트 및 기타 항목을 참조하십시오.

AntreaConfig 개체 구조 열에서 모든 설정은 spec.antrea.config 아래의 AntreaConfig 개체 정의에 있습니다.

구성 파일 변수 AntreaConfig Object Structure
 ANTREA_DISABLE_UDP_TUNNEL_OFFLOAD: false ANTREA_ENABLE_USAGE_REPORTING: false ANTREA_KUBE_APISERVER_OVERRIDE: “https://192.168.77.100:6443” ANTREA_NO_SNAT: false ANTREA_TRAFFIC_ENCAP_MODE: “encap” ANTREA_TRANSPORT_INTERFACE: “eth0” ANTREA_TRANSPORT_INTERFACE_CIDRS: “10.0.0.2/24”
 disableUdpTunnelOffload: false enableUsageReporting: false kubeAPIServerOverride: https://192.168.77.100:6443 noSNAT: false trafficEncapMode: encap transportInterface: eth0 transportInterfaceCIDRs: - 10.0.0.2/24
 ANTREA_EGRESS: true ANTREA_IPAM: false ANTREA_MULTICAST: false ANTREA_NETWORKPOLICY_STATS: true ANTREA_NODEPORTLOCAL: true ANTREA_SERVICE_EXTERNALIP: false ANTREA_POLICY: true ANTREA_TRACEFLOW: true
 featureGates: Egress: true AntreaIPAM: false Multicast: false NetworkPolicyStats: true NodePortLocal: true ServiceExternalIP: false AntreaPolicy: true AntreaTraceflow: true
 ANTREA_PROXY: false ANTREA_PROXY_ALL: false ANTREA_PROXY_LOAD_BALANCER_IPS: true ANTREA_PROXY_NODEPORT_ADDRS: “100.70.70.12” ANTREA_PROXY_SKIP_SERVICES: 10.11.1.2,kube-system/kube-dns
 antreaProxy: nodePortAddresses: - 100.70.70.12 proxyAll: false proxyLoadBalancerIPs: true skipServices: - 10.11.1.2 - kube-system/kube-dns 
 ANTREA_FLOWEXPORTER: false ANTREA_FLOWEXPORTER_ACTIVE_TIMEOUT: “60s” ANTREA_FLOWEXPORTER_COLLECTOR_ADDRESS: “flow-aggregator.svc:4739:tls” ANTREA_FLOWEXPORTER_POLL_INTERVAL: "5s" ANTREA_FLOWEXPORTER_IDLE_TIMEOUT: “15s”
 flowExporter: activeFlowTimeout: 60s collectorAddress: flow-aggregator.svc:4739:tls idleFlowTimeout: 15s pollInterval: 5s
 ANTREA_NODEPORTLOCAL_ENABLED: true ANTREA_NODEPORTLOCAL_PORTRANGE: 61000-62000
 nodePortLocal: enabled: true portRange: 61000-62000
 ANTREA_EGRESS_EXCEPT_CIDRS: "10.0.0.0/6"
 egress: exceptCIDRs: - 10.0.0.0/6 
 ANTREA_MULTICAST_INTERFACES: “eth0”
 multicastInterfaces: - eth0

vSphere

이 섹션에는 워크로드 클러스터를 vSphere 배포하기 위한 변수가 나열됩니다. 아래의 구성 파일 변수 열의 변수에 대한 자세한 내용은 구성 파일 변수 참조의 vSphere를 참조하십시오. Class 기반 개체 구조 열에 나열된 설정은 나열된 kind 개체에 있습니다.

구성 파일 변수 개체 구조
 TKG_IP_FAMILY: ipv4 VSPHERE_CONTROL_PLANE_ENDPOINT: 10.237.177.161 VSPHERE_REGION: my-region VSPHERE_ZONE: my-zone
 kind: VSphereCPIConfig spec: vsphereCPI: ipFamily: ipv4 vmNetwork: excludeExternalSubnetCidr: 10.237.177.161/32 excludeInternalSubnetCidr: 10.237.177.161/32 zone: my-zone

kind: Cluster metadata: annotations: tkg.tanzu.vmware.com/cluster-controlplane-endpoint: 10.237.177.161 spec: topology: variables: - name: apiServerEndpoint value: 10.237.177.161

VSPHERE_MTU

 kind: Cluster spec: topology: variables: - name: controlPlane value: … network: mtu: 1500 - name: worker value: … network: mtu: 1500
 VSPHERE_DATACENTER: /dc0 VSPHERE_DATASTORE: /dc0/datastore/sharedVmfs-0 VSPHERE_FOLDER: /dc0/vm/folder0 VSPHERE_NETWORK: /dc0/network/VM Network VSPHERE_RESOURCE_POOL: /dc0/host/cluster0/Resources/rp0 VSPHERE_SERVER: 10.237.179 VSPHERE_STORAGE_POLICY_ID: my-local-sp VSPHERE_TEMPLATE: /dc0/vm/ubuntu-2004-kube-v1.27.5+vmware.2-tkg.1 VSPHERE_TLS_THUMBPRINT: B7:15:(…):1D:2F
 kind: ClusterBootstrap spec: additionalPackages: - refName: tkg-storageclass* valuesFrom: inline: VSPHERE_STORAGE_POLICY_ID: my-local-sp

kind: Cluster spec: topology: variables: - name: vcenter value: datacenter: /dc0 datastore: /dc0/datastore/sharedVmfs-0 folder: /dc0/vm/folder0 network: /dc0/network/VM Network resourcePool: /dc0/host/cluster0/Resources/rp0 server: 10.237.179.190 storagePolicyID: my-local-sp template: /dc0/vm/ubuntu-2004-kube-v1.27.5+vmware.2-tkg.1 tlsThumbprint: B7:15:(…):1D:2F

 VSPHERE_SSH_AUTHORIZED_KEY: ssh-rsa NzaC1yc2EA[…]==
 kind: Cluster spec: topology: variables: - name: user value: sshAuthorizedKeys: - ssh-rsa NzaC1yc2EA[…]== 
 VSPHERE_CONTROL_PLANE_DISK_GIB: "30" VSPHERE_CONTROL_PLANE_MEM_MIB: "2048" VSPHERE_CONTROL_PLANE_NUM_CPUS: “2” VSPHERE_WORKER_DISK_GIB: “50” VSPHERE_WORKER_MEM_MIB: “4096” VSPHERE_WORKER_NUM_CPUS: "4" 
 kind: Cluster spec: topology: variables: - name: controlPlane value: machine: diskGiB: 40 memoryMiB: 8192 numCPUs: 2 - name: worker value: machine: diskGiB: 40 memoryMiB: 8192 numCPUs: 2 
 NTP_SERVERS: time.google.com 
 kind: Cluster spec: topology: variables: - name: ntpServers value: - time.google.com 
 VSPHERE_AZ_0: rack1 VSPHERE_AZ_1: rack2 VSPHERE_AZ_2: rack3 
 kind: Cluster spec: topology: workers: machineDeployments: - class: tkg-worker failureDomain: rack1 name: md-0 - class: tkg-worker failureDomain: rack2 name: md-1 - class: tkg-worker failureDomain: rack3 name: md-2 
 CONTROL_PLANE_NODE_NAMESERVERS: “10.10.10.10,10.10.10.11” WORKER_NODE_NAMESERVERS: “10.10.10.10,10.10.10.11”
 - name: controlplane value: network: nameservers: - 10.10.10.10 - 10.10.10.11 - name: worker value: network: nameservers: - 10.10.10.10 - 10.10.10.11 

AWS

이 섹션에는 AWS에 워크로드 클러스터를 배포하기 위한 변수가 나열됩니다. 아래의 구성 파일 변수 열의 변수에 대한 자세한 내용은 구성 파일 변수 참조의 AWS를 참조하십시오.

Class 기반 클러스터 개체 구조 열에서 모든 name/value 쌍 설정은 Cluster 아래의 spec.topology.variables 개체 정의에 있습니다.

구성 파일 변수 클래스 기반 클러스터 개체 구조
 AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_PROFILE 
해당 없음
이러한 설정은 Cluster 개체에 저장되지 않습니다.
 AWS_REGION: us-east-1 
 - name: region value: us-east-1 
 AWS_SSH_KEY_NAME: aws-tkg-clusteradmin 
 - name: sshKeyName value: aws-tkg-clusteradmin 
 AWS_LOAD_BALANCER_SCHEME_INTERNAL: false 
 - name: loadBalancerSchemeInternal value: false
 BASTION_HOST_ENABLED: true 
 - name: bastion value: enabled: true 
 AWS_NODE_AZ: us-east-1a AWS_PRIVATE_NODE_CIDR: 10.0.0.0/24 AWS_PRIVATE_SUBNET_ID: subnet-0a7d376dde53c77ed AWS_PUBLIC_NODE_CIDR: 10.0.1.0/24 AWS_PUBLIC_SUBNET_ID: subnet-0794d50f57e9801b6 AWS_NODE_AZ_1: us-west-2b AWS_PRIVATE_NODE_CIDR_1: 10.0.2.0/24 AWS_PRIVATE_SUBNET_ID_1: subnet-0c338780824d1c59d AWS_PUBLIC_NODE_CIDR_1: 10.0.3.0/24 AWS_PUBLIC_SUBNET_ID_1: subnet-0addabd635d02ba97 AWS_NODE_AZ_2: ap-southeast-3 AWS_PRIVATE_NODE_CIDR_2: 10.0.4.0/24 AWS_PRIVATE_SUBNET_ID_2: subnet-00b9638e419a6187b AWS_PUBLIC_NODE_CIDR_2: 10.0.5.0/24 AWS_PUBLIC_SUBNET_ID_2: subnet-0ed174ef16a2f43aa 
 - name: network value: subnets: - az: us-east-1a private: cidr: 10.0.0.0/24 id: subnet-0a7d376dde53c77ed public: cidr: 10.0.1.0/24 id: subnet-0794d50f57e9801b6 - az: us-west-2b private: cidr: 10.0.2.0/24 id: subnet-0c338780824d1c59d public: cidr: 10.0.3.0/24 id: subnet-0addabd635d02ba97 - az: ap-southeast-3 private: cidr: 10.0.4.0/24 id: subnet-00b9638e419a6187b public: cidr: 10.0.5.0/24 id: subnet-0ed174ef16a2f43aa 
 AWS_VPC_CIDR: 10.0.0.0/16 
 - name: network value: … vpc: cidr: 10.0.0.0/16 
 AWS_VPC_ID: vpc-0ce8bdfea218 
 - name: network value: … vpc: existingID: vpc-0ce8bdfea218 
 AWS_SECURITY_GROUP_BASTION: sg-1 AWS_SECURITY_GROUP_APISERVER_LB: sg-2 AWS_SECURITY_GROUP_LB: sg-3 AWS_SECURITY_GROUP_CONTROLPLANE: sg-4 AWS_SECURITY_GROUP_NODE: sg-5 
 - name: network value: … securityGroupOverrides: bastion: sg-1 apiServerLB: sg-2 lb: sg-3 controlPlane: sg-4 node: sg-5 
 AWS_IDENTITY_REF_NAME: my-aws-id AWS_IDENTITY_REF_KIND: AWSClusterRoleIdentity 
 - name: identityRef value: name: my-aws-id kind: AWSClusterRoleIdentity 
 NODE_MACHINE_TYPE: m5.large AWS_NODE_OS_DISK_SIZE_GIB: 80 
다중 AZ 배포에서는 NODE_MACHINE_TYPE_1NODE_MACHINE_TYPE_2를 설정할 수도 있습니다.
Cluster 개체의 spec.topology.workers에서:
 machineDeployments: - class: tkg-worker name: md-0 value: instanceType: m5.large rootVolume: sizeGiB: 80 
 CONTROL_PLANE_MACHINE_TYPE: t3.large AWS_CONTROL_PLANE_OS_DISK_SIZE_GIB: 80 
 - name: controlPlane value: instanceType: t3.large rootVolume: sizeGiB: 80 

Microsoft Azure

이 섹션에는 Microsoft Azure에 워크로드 클러스터를 배포하기 위한 변수가 나열됩니다. 아래의 구성 파일 변수 열의 변수에 대한 자세한 내용은 구성 파일 변수 참조에서 Microsoft Azure를 참조하십시오.

Class 기반 클러스터 개체 구조 열에서 모든 name/value 쌍 설정은 Cluster 아래의 spec.topology.variables 개체 정의에 있습니다.

구성 파일 변수 클래스 기반 클러스터 개체 구조
 AZURE_CLIENT_ID AZURE_CLIENT_SECRET AZURE_TENANT_ID
해당 없음
이러한 설정은 Cluster 개체에 노출되지 않습니다.
AZURE_LOCATION: eastus2
 - name: location value: eastus2
AZURE_RESOURCE_GROUP: my-azure-rg
 - name: resourceGroup value: my-azure-rg
AZURE_SUBSCRIPTION_ID: c789uce3-aaaa-bbbb-cccc-a51b6b0gb405
 - name: subscriptionID value: c789uce3-aaaa-bbbb-cccc-a51b6b0gb405
AZURE_ENVIRONMENT: AzurePublicCloud
 - name: environment value: AzurePublicCloud
AZURE_SSH_PUBLIC_KEY_B64: “c3NoLXJzYSBB […] vdGFsLmlv”
 - name: sshPublicKey value: c3NoLXJzYSBB […] vdGFsLmlv 
AZURE_FRONTEND_PRIVATE_IP: 10.0.0.100
AZURE_ENABLE_PRIVATE_CLUSTERtrue입니다.
 - name: frontendPrivateIP value: 10.0.0.100 
AZURE_CUSTOM_TAGS: “foo=bar, plan=prod”
 - name: customTags value: “foo=bar, plan=prod” 
AZURE_ENABLE_ACCELERATED_NETWORKING: true
 - name: acceleratedNetworking value: enabled: true 
AZURE_ENABLE_PRIVATE_CLUSTER: false
 - name: privateCluster value: enabled: false 
 AZURE_VNET_CIDR: 10.0.0.0/16 AZURE_VNET_NAME: my-azure-vnet AZURE_VNET_RESOURCE_GROUP: my-azure-vnet-rg
 - name: network value: vnet: cidrBlocks: - 10.0.0.0/16 name: my-azure-vnet resourceGroup: my-azure-vnet-rg
 AZURE_IDENTITY_NAME: my-azure-id AZURE_IDENTITY_NAMESPACE: default 
 - name: identityRef value: name: my-azure-id namespace: default  
 AZURE_CONTROL_PLANE_DATA_DISK_SIZE_GIB: 256 AZURE_CONTROL_PLANE_OS_DISK_SIZE_GIB: 128 AZURE_CONTROL_PLANE_OS_DISK_STORAGE_ACCOUNT_TYPE: Premium_LRS AZURE_ENABLE_CONTROL_PLANE_OUTBOUND_LB: true AZURE_CONTROL_PLANE_OUTBOUND_LB_FRONTEND_IP_COUNT: 1 AZURE_CONTROL_PLANE_SUBNET_CIDR: 10.0.0.0/24 AZURE_CONTROL_PLANE_SUBNET_NAME: my-azure-cp-subnet AZURE_CONTROL_PLANE_MACHINE_TYPE: Standard_D2s_v3 
 - name: controlPlane value: dataDisks: - sizeGiB: 256 osDisk: sizeGiB: 128 storageAccountType: Premium_LRS outboundLB: enabled: true frontendIPCount: 1 subnet: cidr: 10.0.0.0/24 name: my-azure-cp-subnet vmSize: Standard_D2s_v3 
 AZURE_ENABLE_NODE_DATA_DISK: true AZURE_NODE_DATA_DISK_SIZE_GIB: 256 AZURE_NODE_OS_DISK_SIZE_GIB: 128 AZURE_NODE_OS_DISK_STORAGE_ACCOUNT_TYPE: Premium_LRS AZURE_ENABLE_NODE_OUTBOUND_LB: true AZURE_NODE_OUTBOUND_LB_FRONTEND_IP_COUNT: 1 AZURE_NODE_OUTBOUND_LB_IDLE_TIMEOUT_IN_MINUTES: 4 AZURE_NODE_SUBNET_CIDR: 10.0.1.0/24 AZURE_NODE_SUBNET_NAME: my-azure-worker-subnet AZURE_NODE_MACHINE_TYPE: Standard_D2s_v3 
 - name: worker value: dataDisks: - sizeGiB: 256 osDisk: sizeGiB: 128 storageAccountType: Premium_LRS outboundLB: enabled: true frontendIPCount: 1 idleTimeoutInMinutes: 4 subnet: cidr: 10.0.1.0/24 name: my-azure-worker-subnet vmSize: Standard_D2s_v3 

NSX Advanced Load Balancer

이 섹션에는 TKG에서 ALB(NSX Advanced Load Balancer)를 구성하는 변수가 나열되어 있습니다.

구성 파일 변수 클래스 기반 클러스터 개체 구조
 AVI_CONTROL_PLANE_HA_PROVIDER
 topology: variables: - name: aviAPIServerHAProvider value: true 

Cluster 개체 및 하위 개체 예

클러스터 구성 파일을 tanzu cluster create--file 플래그에 전달하면 명령은 클러스터 구성 파일을 클러스터 규격 파일로 변환합니다. 다음 구성 파일에서 Cluster 개체, 그리고 tanzu cluster create에서 생성된 하위 개체에 대한 예는 아래를 참조하십시오.

CLUSTER_NAME: example-cluster
CLUSTER_PLAN: dev
NAMESPACE: default
CNI: antrea
VSPHERE_NETWORK: /dc0/network/VM Network
VSPHERE_SSH_AUTHORIZED_KEY: ssh-rsa AAAACCCza2EBBB[...]ADGQAg/POl6vyWOmQ==
VSPHERE_USERNAME: [email protected]
VSPHERE_PASSWORD: 1234567AbC!
VSPHERE_SERVER: 10.XXX.XXX.71
VSPHERE_DATACENTER: /dc0
VSPHERE_RESOURCE_POOL: /dc0/host/cluster0/Resources/example-tkg
VSPHERE_DATASTORE: /dc0/datastore/vsanDatastore
VSPHERE_FOLDER: /dc0/vm/example-tkg
VSPHERE_TLS_THUMBPRINT: ""
VSPHERE_INSECURE: true
VSPHERE_CONTROL_PLANE_ENDPOINT: 10.XXX.XXX.75
AVI_CONTROL_PLANE_HA_PROVIDER: false
ENABLE_AUDIT_LOGGING: false
ENABLE_DEFAULT_STORAGE_CLASS: true
CLUSTER_CIDR: 100.96.0.0/11
SERVICE_CIDR: 100.64.0.0/13
ENABLE_AUTOSCALER: false

결과 Cluster 개체 및 하위 개체:

apiVersion: cpi.tanzu.vmware.com/v1alpha1
kind: VSphereCPIConfig
metadata:
  name: example-cluster
  namespace: default
spec:
  vsphereCPI:
    mode: vsphereCPI
    tlsCipherSuites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
    vmNetwork:
      excludeExternalSubnetCidr: 10.XXX.XXX.75/32
      excludeInternalSubnetCidr: 10.XXX.XXX.75/32
---
apiVersion: csi.tanzu.vmware.com/v1alpha1
kind: VSphereCSIConfig
metadata:
  name: example-cluster
  namespace: default
spec:
  vsphereCSI:
    config:
      datacenter: /dc0
      httpProxy: ""
      httpsProxy: ""
      insecureFlag: true
      noProxy: ""
      region: null
      tlsThumbprint: ""
      useTopologyCategories: false
      zone: null
    mode: vsphereCSI
---
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
  annotations:
    tkg.tanzu.vmware.com/add-missing-fields-from-tkr: TKR-NAME
  name: example-cluster
  namespace: default
spec:
  additionalPackages:
  - refName: metrics-server*
  - refName: secretgen-controller*
  - refName: pinniped*
  cpi:
    refName: vsphere-cpi*
    valuesFrom:
      providerRef:
        apiGroup: cpi.tanzu.vmware.com
        kind: VSphereCPIConfig
        name: example-cluster
  csi:
    refName: vsphere-csi*
    valuesFrom:
      providerRef:
        apiGroup: csi.tanzu.vmware.com
        kind: VSphereCSIConfig
        name: example-cluster
  kapp:
    refName: kapp-controller*
---
apiVersion: v1
kind: Secret
metadata:
  name: example-cluster
  namespace: default
stringData:
  password: 1234567AbC!
  username: [email protected]
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  annotations:
    osInfo: ubuntu,20.04,amd64
    tkg.tanzu.vmware.com/cluster-controlplane-endpoint: 10.XXX.XXX.75
    tkg/plan: dev
  labels:
    tkg.tanzu.vmware.com/cluster-name: example-cluster
  name: example-cluster
  namespace: default
spec:
  clusterNetwork:
    pods:
      cidrBlocks:
      - 100.96.0.0/11
    services:
      cidrBlocks:
      - 100.64.0.0/13
  topology:
    class: tkg-vsphere-default-CLUSTER-CLASS-VERSION
    controlPlane:
      metadata:
        annotations:
          run.tanzu.vmware.com/resolve-os-image: image-type=ova,os-name=ubuntu
      replicas: 1
    variables:
    - name: cni
      value: antrea
    - name: controlPlaneCertificateRotation
      value:
        activate: true
        daysBefore: 90
    - name: auditLogging
      value:
        enabled: false
    - name: podSecurityStandard
      value:
        audit: restricted
        deactivated: false
        warn: restricted
    - name: apiServerEndpoint
      value: 10.XXX.XXX.75
    - name: aviAPIServerHAProvider
      value: false
    - name: vcenter
      value:
        cloneMode: fullClone
        datacenter: /dc0
        datastore: /dc0/datastore/vsanDatastore
        folder: /dc0/vm/example-tkg
        network: /dc0/network/VM Network
        resourcePool: /dc0/host/cluster0/Resources/example-tkg
        server: 10.XXX.XXX.71
        storagePolicyID: ""
        tlsThumbprint: ""
    - name: user
      value:
        sshAuthorizedKeys:
        - ssh-rsa AAAACCCza2EBBB[...]ADGQAg/POl6vyWOmQ==
    - name: controlPlane
      value:
        machine:
          diskGiB: 40
          memoryMiB: 8192
          numCPUs: 2
    - name: worker
      value:
        machine:
          diskGiB: 40
          memoryMiB: 4096
          numCPUs: 2
    - name: security
      value:
        fileIntegrityMonitoring:
          enabled: false
        imagePolicy:
          pullAlways: false
          webhook:
            enabled: false
            spec:
              allowTTL: 50
              defaultAllow: true
              denyTTL: 60
              retryBackoff: 500
        kubeletOptions:
          eventQPS: 50
          streamConnectionIdleTimeout: 4h0m0s
        systemCryptoPolicy: default
    version: KUBERNETES-VERSION
    workers:
      machineDeployments:
      - class: tkg-worker
        metadata:
          annotations:
            run.tanzu.vmware.com/resolve-os-image: image-type=ova,os-name=ubuntu
        name: md-0
        replicas: 1
        strategy:
          type: RollingUpdate

위의 예제 개체 규격 파일에는 다음과 같은 자리 표시자 텍스트가 포함되어 있습니다.

  • tkg.tanzu.vmware.com/add-missing-fields-from-tkr: TKR-NAMETKR-NAME: 구성에 따라 tanzu cluster create를 호환되는 TKr(Tanzu Kubernetes 릴리스)로 설정합니다. 예: tkg.tanzu.vmware.com/add-missing-fields-from-tkr: v1.27.5---vmware.1-tkg.1. v1.27.5---vmware.1-tkg.1는 이 Tanzu Kubernetes Grid 릴리스의 기본 TKr입니다.
  • version: KUBERNETES-VERSIONKUBERNETES-VERSION: 구성에 따라 tanzu cluster create를 호환되는 Kubernetes 버전으로 설정합니다. 예: version: v1.27.5+vmware.1-tkg.1. v1.27.5+vmware.1-tkg.1는 이 Tanzu Kubernetes Grid 릴리스의 기본 Kubernetes 버전입니다.
  • class: tkg-vsphere-default-CLUSTER-CLASS-VERSIONCLUSTER-CLASS-VERSION: 기본 class 버전입니다. 예: class: tkg-vsphere-default-v1.1.1.
check-circle-line exclamation-circle-line close-line
Scroll to top icon