이 항목에서는 워크로드 클러스터 구성 파일의 변수가 클래스 기반 Cluster
개체 및 ClusterBootstrap
및 TKG(기타 하위 Tanzu Kubernetes Grid 개체) 내의 변수 설정으로 변환되는 방법을 설명합니다. Cluster
개체 및 하위 개체의 예는 아래 Cluster
개체 및 하위 개체 예를 참조하십시오.
구성 파일 변수와 클래스 기반 클러스터 변수는 다음과 같습니다.
구성 파일 변수는 다음과 같습니다.
TKG_CUSTOM_IMAGE_REPOSITORY: stg-project.vmware.com
클래스 기반 클러스터 변수 설정은 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 numCPU: 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 |
workers: machineDeployments: - class: tkg-worker ... replicas: 6 |
WORKER_SIZE: extra-large SIZE: extra-large값은 인프라를 기준으로 machine 설정으로 변환됩니다.SIZE 는 제어부 및 작업자 모두에 적용됩니다. |
- name: worker value: ... machine: diskGiB: 80 memoryMiB: 32768 numCPU: 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 |
workers: 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 |
아래 표에는 포드 보안 승인 컨트롤러에 대한 포드 보안 표준을 구성하기 위한 변수가 나열됩니다. 구성 파일 변수 열의 변수에 대한 자세한 내용은 구성 파일 변수 참조의 포드 보안 승인 컨트롤러의 포드 보안 표준을 참조하십시오.
Class 기반 클러스터 개체 구조 열에서 모든 name
/value
쌍 설정은 Cluster
아래의 spec.topology.variables
개체 정의에 있습니다.
구성 파일 변수 | 클래스 기반 클러스터 개체 구조 |
---|---|
POD_SECURITY_STANDARD_DEACTIVATED: false POD_SECURITY_STANDARD_AUDIT: privileged POD_SECURITY_STANDARD_WARN: privileged POD_SECURITY_STANDARD_ENFORCE: baseline |
- name: podSecurityStandard value: deactivated: false audit: "privileged" enforce: "privileged" warn: "baseline" auditVersion: "v1.26" enforceVersion: "v1.26" warnVersion: "v1.26" exemptions: namespaces: ["kube-system", "tkg-system"] |
ENABLE_AUTOSCALER
가 true
이면 Tanzu CLI는 클러스터 Autoscaler용 Deployment
개체를 생성하고 클러스터 Autoscaler annotations
을 Cluster
개체에 추가합니다. 아래의 구성 파일 변수 열의 변수에 대한 자세한 내용은 구성 파일 변수 참조의 클러스터 자동조정기를 참조하십시오.
구성 파일 변수 | 클래스 기반 클러스터 및 자동조정기 배포 개체 구조 |
---|---|
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_* 가 설정되지 않은 경우 annotations 설정은 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.enabled 가 TKG_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는 [프록시 구성](../../config-ref.md#proxies)에 설명된 대로 구성 파일에 설정되지 않은 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_CERT 가 TKG_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 |
이 섹션에는 클러스터의 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 transportInterfaceCIDR: - 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 proxyLoadBalancer IP: 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: exceptCIDR: - 10.0.0.0/6 |
ANTREA_MULTICAST_INTERFACES: "eth0" |
multicastInterfaces: - eth0 |
이 섹션에는 워크로드 클러스터를 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 템플릿: /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 numCPU: 2 - name: worker value: machine: diskGiB: 40 memoryMiB: 8192 numCPU: 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를 참조하십시오.
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_1 및 NODE_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를 참조하십시오.
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_CLUSTER 는 true 입니다. |
- 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 |
이 섹션에는 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-NAME
의 TKR-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-VERSION
의 KUBERNETES-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-VERSION
의 CLUSTER-CLASS-VERSION
: 기본 class
버전입니다. 예: class: tkg-vsphere-default-v1.1.1
.