En este tema se explica cómo las variables de los archivos de configuración del clúster de carga de trabajo se convierten a la configuración de variables dentro de objetos Cluster
basados en clases y sus ClusterBootstrap
y otros objetos subordinados en Tanzu Kubernetes Grid (TKG). Para obtener un objeto Cluster
de ejemplo y sus objetos subordinados, consulte Objeto Cluster
de ejemplo y sus objetos subordinados a continuación.
Las variables del archivo de configuración y las variables del clúster basado en clases difieren:
Las variables del archivo de configuración:
TKG_CUSTOM_IMAGE_REPOSITORY: stg-project.vmware.com
La configuración de variables del clúster basado en clases es una configuración de YAML anidada dentro de las especificaciones de los objetos Cluster
o ClusterBootstrap
:
La configuración del objeto del Cluster
:
ClusterClass
como el valor spec.topology.class
del clúster.controlPlane
, workers
o variables
en spec.topology
.Ajuste de configuración:
variables:
- name: imageRepository
value:
host: stg-project.vmware.com
ClusterBootstrap
es una configuración única para redes de contenedores y otras infraestructuras de bajo nivel que no se pueden cambiar en un clúster existente.Al ejecutar el comando tanzu cluster create
con un archivo de configuración del clúster como se describe en Crear un clúster basado en clases, la CLI de Tanzu realiza esta conversión.
En la siguiente tabla se enumeran las variables para configurar el plano de control y los nodos de trabajo, así como el sistema operativo que ejecutan las instancias de nodo. Para obtener información sobre las variables en la columna Variables del archivo de configuración, consulte Configuración de nodos en Referencia de variables del archivo de configuración.
En la columna Estructura de objetos del clúster basado en clases, todos los ajustes del par name
/value
se encuentran en la definición del objeto del Cluster
bajo spec.topology.variables
. El código de ejemplo de esta columna se aplica a los objetos del Cluster
en vSphere. La estructura de objetos de en AWS y Azure puede diferir.
Variables del archivo de configuración | Estructura de objetos del clúster basado en clases |
---|---|
OS_NAME: OS_VERSION ubuntu: 20.04 OS_ARCH: amd64 |
metadatos: annotations: osInfo: ubuntu,20.04,amd64 |
CONTROL_PLANE_MACHINE_COUNT: 3 |
controlPlane: … réplicas: 3 |
CONTROLPLANE_SIZE: tamaño grande: grandeLos valores se convierten a la configuración machine basada en la infraestructura.SIZE se aplica tanto al plano de control como a los trabajos. |
- nombre: controlPlane valor: machine: diskGiB: 40 memoryMiB: 16384 numCPUs: 4 |
CONTROL_PLANE_NODE_SEARCH_DOMAINS: corp.local, example.com |
- nombre: controlPlane valor: Red de …: … searchDomains: - corp.local - example.com |
CONTROL_PLANE_NODE_LABELS: ‘key1=value1,key2=value2’ |
- nombre: controlPlane valor: … nodeLabels: - clave: key1 valor: valor1 - clave: key2 valor: valor2 |
WORKER_MACHINE_COUNT: 6 |
- nombre: trabajo valor: recuento: 6 |
WORKER_SIZE: tamaño extragrande: extragrandeLos valores se convierten a la configuración machine basada en la infraestructura.SIZE se aplica tanto al plano de control como a los trabajos. |
- nombre: valor de trabajador: Máquina de …: diskGiB: 80 memoryMiB: 32768 numCPUs: 8 |
WORKER_NODE_SEARCH_DOMAINS: corp.local, example.com |
- nombre: valor de trabajador: Red de …: searchDomains: - corp.local - example.com |
CUSTOM_TDNF_REPOSITORY_CERTIFICATE: “YPdeNjLW[…]” |
- nombre: customTDNFRepository valor: certificado: YPdeNjLW[…] |
Cuando ENABLE_AUTOSCALER
es true
, la CLI de Tanzu crea un objeto Deployment
para el Escalador automático de clústeres y agrega annotations
del Escalador automático de clústeres al objeto Cluster
. Para obtener información sobre las variables en la columna Variables del archivo de configuración a continuación, consulte Escalador automático de clústeres en Referencia de variables del archivo de configuración.
Variables del archivo de configuración | Estructura de objetos de implementación de escalador automático y clúster basado en clases |
---|---|
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 |
En el objeto Deployment del Escalador automático de clústeres:especificaciones: contenedores: - 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: 4Si AUTOSCALER_MIN_SIZE_ AUTOSCALER_MAX_SIZE_ o are not set, the annotations settings take the values of WORKER_MACHINE_COUNT_* . |
En el objeto Cluster , en spec.topology.workers :machineDeployments: - clase: metadatos de tkg-worker: anotaciones: cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size "12": “8” … nombre: md-0 - clase: tkg-worker metadatos: anotaciones: cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: Cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size "10": Nombre del … "6": md-1 … |
En esta sección se enumeran las variables para usar proxies y registros de imágenes privadas, por ejemplo, en una implementación restringida por Internet.
En la columna Estructura de objetos del clúster basado en clases, todos los ajustes del par name
/value
se encuentran en la definición del objeto del Cluster
bajo spec.topology.variables
.
Variables del archivo de configuración | Estructura de objetos del clúster basado en clases | Notas |
---|---|---|
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 revierte la configuración booleana para TKG_CUSTOM_IMAGE_REPOSITORY_SKIP_TLS_VERIFY y no se escribe si su valor es 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 |
- nombre: proxy valor: httpProxy: http://proxy.example.com:80 httpsProxy: https://proxy.example.com:3128 noProxy: - .noproxy.example.com - noproxy.example.com - 192.168.0.0/24 - […] |
Internamente, la CLI de Tanzu anexa a los valores de la lista noProxy que no están establecidos en un archivo de configuración, como se describe en Configuración de proxy. |
TKG_PROXY_CA_CERT: “LS0tLSBL[…]” TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE: “MIIEpgIH[…]" |
- nombre: valor de confianza: - nombre: datos de proxy: LS0tLSBL[…] - nombre: imageRepository datos: MIIEpgIH[…] |
Los valores son certificados de CA con codificación base64.TKG_PROXY_CA_CERT tiene prioridad sobre TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE , y el valor trust imageRespository no se escribe si se establece el valor trust proxy . |
En la siguiente tabla, se enumeran las variables que son comunes a todas las plataformas de destino.
Para obtener información sobre las variables de la columna Variables de archivo de configuración, consulte Variables comunes para todas las plataformas de destino en Referencia de variables de archivo de configuración.
En la columna Estructura de objetos del clúster basado en clases, todos los ajustes del par name
/value
se encuentran en la definición del objeto del Cluster
bajo spec.topology.variables
.
Variables del archivo de configuración | Estructura de objetos del clúster basado en clases |
---|---|
CLUSTER_NAME: my-cluster NAMESPACE: valor predeterminado |
metadata: name: my-cluster namespace: default |
CLUSTER_PLAN: dev |
metadatos: anotaciones: tkg/plan: dev |
INFRASTRUCTURE_PROVIDER: vsphere |
topología: clase: tkg-vsphere-default-v1.0.0 |
CLUSTER_API_SERVER_PORT: 6443 |
- nombre: apiServerPort valor: 6443 |
CNI: antrea |
- nombre: cni valor: antrea |
ENABLE_AUDIT_LOGGING: true |
- nombre: auditLogging valor: habilitado: true |
CLUSTER_CIDR: 100.96.0.0/11 SERVICE_CIDR: 100.64.0.0/13 |
spec: clusterNetwork: pods: cidrBlocks: - Servicios de 100.96.0.0/11: cidrBlocks: - 100.64.0.0/13 |
CONTROLPLANE_CERTIFICATE_ROTATION_ENABLED: true CONTROLPLANE_CERTIFICATE_ROTATION_DAYS_BEFORE: 65 |
- name: controlPlaneCertificateRotation valor: activate: true daysBefore: 65 |
En esta sección se enumeran las variables para configurar la interfaz de red de contenedor Antrea (CNI) de un clúster. Las variables del clúster basado en clases residen en el objeto AntreaConfig
al que se hace referencia en la propiedad spec.cni.refName
del objeto ClusterBootstrap
.
Los clústeres basados en clases admiten muchas opciones de configuración de Antrea que no tienen variables de archivo de configuración de TKG correspondientes. Para ver todas las opciones de configuración de Antrea que se pueden establecer para objetos del Cluster
basado en clases, consulte Puertas de funciones y otros temas en la documentación de Antrea.
En la columna Estructura del objeto AntreaConfig, todos los ajustes se encuentran en la definición del objeto AntreaConfig
, en spec.antrea.config
.
Variables del archivo de configuración | Estructura del objeto AntreaConfig |
---|---|
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: ANTREA_FLOWEXPORTER_POLL_INTERVAL "flow-aggregator.svc:4739:tls": “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: habilitado: 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 |
En esta sección se enumeran las variables para implementar clústeres de carga de trabajo en vSphere. Para obtener información sobre las variables en la columna Variables del archivo de configuración a continuación, consulte vSphere en Referencia de variables del archivo de configuración. Las configuraciones enumeradas en la columna Estructura de objetos basados en clases están en los objetos del kind
enumerado.
Variables del archivo de configuración | Estructura de objetos |
---|---|
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 |
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.24.10+vmware.1-tkg.1 VSPHERE_TLS_THUMBPRINT: B7:15:2D:D8:E5:FC:BE:C6:85:7A:03:98:0E:43:7E:59:A9:CF:1D:2F |
kind: Especificación de ClusterBootstrap: additionalPackages: - refName: tkg-storageclass* valuesDes: en línea: VSPHERE_STORAGE_POLICY_ID: my-local-sp |
VSPHERE_SSH_AUTHORIZED_KEY: ssh-rsa NzaC1yc2EA[…]== |
kind: Especificación del clúster: topología: variables: - nombre: valor de usuario: 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: Especificación del clúster: topología: variables: - nombre: controlPlane valor: machine: diskGiB: 40 memoryMiB: 8192 numCPUs: 2 - nombre: valor de trabajador: recuento: 1 máquina: diskGiB: 40 memoryMiB: 8192 numCPUs: 2 |
NTP_SERVERS: time.google.com |
kind: Especificación del clúster: topología: variables: - nombre: ntpServers valor: - time.google.com |
VSPHERE_AZ_0: VSPHERE_AZ_1 rack1: rack2 VSPHERE_AZ_2: rack3 |
kind: Especificación del clúster: topología: trabajadores: machineDeployments: - clase: tkg-worker failureDomain: rack1 name: md-0 - class: tkg-worker failureDomain: rack2 name: md-1 - class: tkg-worker failureDomain: nombre del rack3: md-2 |
En esta sección se enumeran las variables para implementar clústeres de carga de trabajo en AWS. Para obtener información sobre las variables en la columna Variables del archivo de configuración a continuación, consulte AWS en Referencia de variables del archivo de configuración.
En la columna Estructura de objetos del clúster basado en clases, todos los ajustes del par name
/value
se encuentran en la definición del objeto del Cluster
bajo spec.topology.variables
.
Variables del archivo de configuración | Estructura de objetos del clúster basado en clases |
---|---|
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN AWS_PROFILE |
N/D Esta configuración no se almacena en el objeto Cluster . |
AWS_REGION: us-east-1 |
- nombre: región valor: us-east-1 |
AWS_SSH_KEY_NAME: aws-tkg-clusteradmin |
- nombre: sshKeyName valor: aws-tkg-clusteradmin |
AWS_LOAD_BALANCER_SCHEME_INTERNAL: false |
- nombre: loadBalancerSchemeInternal valor: false |
BASTION_HOST_ENABLED: true |
- nombre: valor de bastión: habilitado: 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 |
- nombre: valor de red: subredes: - 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 |
- nombre: valor de red: vpc de …: cidr: 10.0.0.0/16 |
AWS_VPC_ID: vpc-0ce8bdfea218 |
- nombre: valor de red: vpc de …: 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 |
- nombre: valor de red: … 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 |
- nombre: identityRef valor: nombre: my-aws-id kind: AWSClusterRoleIdentity |
NODE_MACHINE_TYPE: m5.large AWS_NODE_OS_DISK_SIZE_GIB: 80En una implementación de varias zonas de disponibilidad, también puede establecer NODE_MACHINE_TYPE_1 y NODE_MACHINE_TYPE_2 |
En el objeto Cluster , en 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 |
En esta sección se enumeran las variables para implementar clústeres de carga de trabajo en Microsoft Azure. Para obtener información sobre las variables en la columna Variables del archivo de configuración a continuación, consulte Microsoft Azure en Referencia de variables del archivo de configuración.
En la columna Estructura de objetos del clúster basado en clases, todos los ajustes del par name
/value
se encuentran en la definición del objeto del Cluster
bajo spec.topology.variables
.
Variables del archivo de configuración | Estructura de objetos del clúster basado en clases |
---|---|
AZURE_CLIENT_ID AZURE_CLIENT_SECRET AZURE_TENANT_ID |
N/D Esta configuración no se expone en el objeto Cluster . |
AZURE_LOCATION: eastus2 |
- nombre: valor de ubicación: eastus2 |
AZURE_RESOURCE_GROUP: my-azure-rg |
- nombre: resourceGroup valor: my-azure-rg |
AZURE_SUBSCRIPTION_ID: c789uce3-aaaa-bbbb-cccc-a51b6b0gb405 |
- nombre: subscriptionID valor: c789uce3-aaaa-bbbb-cccc-a51b6b0gb405 |
AZURE_ENVIRONMENT: AzurePublicCloud |
- nombre: valor de entorno: AzurePublicCloud |
AZURE_SSH_PUBLIC_KEY_B64: “c3NoLXJzYSBB […] vdGFsLmlv” |
- nombre: sshPublicKey valor: c3NoLXJzYSBB […] vdGFsLmlv |
AZURE_FRONTEND_PRIVATE_IP: 10.0.0.100Establezca si AZURE_ENABLE_PRIVATE_CLUSTER es true . |
- nombre: frontendPrivateIP valor: 10.0.0.100 |
AZURE_CUSTOM_TAGS: "foo=bar, plan=prod" |
- nombre: customTags valor: "foo=bar, plan=prod" |
AZURE_ENABLE_ACCELERATED_NETWORKING: true |
- nombre: acceleratedNetworking valor: enabled: true |
AZURE_ENABLE_PRIVATE_CLUSTER: false |
- nombre: privateCluster valor: habilitado: false |
AZURE_VNET_CIDR: 10.0.0.0/16 AZURE_VNET_NAME: my-azure-vnet AZURE_VNET_RESOURCE_GROUP: my-azure-vnet-rg |
- nombre: valor de red: vnet: cidrBlocks: - 10.0.0.0/16 nombre: my-azure-vnet resourceGroup: my-azure-vnet-rg |
AZURE_IDENTITY_NAME: my-azure-id AZURE_IDENTITY_NAMESPACE: predeterminado |
- nombre: 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 |
- nombre: controlPlane valor: dataDisks: - sizeGiB: 256 osDisk: sizeGiB: 128 storageAccountType: Premium_LRS salienteLB: habilitado: true front-endIPCount: 1 subred: CIDR: 10.0.0.0/24 nombre: 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 |
- nombre: worker valor: dataDisks: - sizeGiB: 256 osDisk: sizeGiB: 128 storageAccountType: Premium_LRS salienteLB: habilitado: true front-endIPCount: 1 idleTimeoutInMinutes: 4 subred: cidr: 10.0.1.0/24 nombre: my-azure-worker-subnet vmSize: Standard_D2s_v3 |
En esta sección se enumeran las variables para configurar NSX Advanced Load Balancer (ALB) en TKG.
Variables del archivo de configuración | Estructura de objetos del clúster basado en clases |
---|---|
AVI_CONTROL_PLANE_HA_PROVIDER |
topología: variables: - nombre: aviAPIServerHAProvider valor: true |
Cluster
de ejemplo y sus objetos subordinadosAl pasar un archivo de configuración de clúster a la marca --file
de tanzu cluster create
, el comando convierte el archivo de configuración del clúster en un archivo de especificación de clúster. Consulte a continuación un objeto Cluster
de ejemplo y sus objetos subordinados generados por tanzu cluster create
del siguiente archivo de configuración:
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
Objeto Cluster
resultante y sus objetos subordinados:
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
El archivo de especificación de objeto de ejemplo anterior incluye el siguiente texto de marcador de posición:
TKR-NAME
en tkg.tanzu.vmware.com/add-missing-fields-from-tkr: TKR-NAME
: Establecido por tanzu cluster create
en una versión de Tanzu Kubernetes compatible (TKr), en función de la configuración. Por ejemplo, tkg.tanzu.vmware.com/add-missing-fields-from-tkr: v1.24.10---vmware.1-tkg.2
. v1.24.10---vmware.1-tkg.2
es la TKr predeterminada para esta versión de Tanzu Kubernetes Grid.KUBERNETES-VERSION
en version: KUBERNETES-VERSION
: Establecido por tanzu cluster create
en una versión de Kubernetes compatible (TKr), en función de la configuración. Por ejemplo, version: v1.24.10+vmware.1-tkg.2
. v1.24.10+vmware.1-tkg.2
es la versión predeterminada de Kubernetes para esta versión de Tanzu Kubernetes Grid.CLUSTER-CLASS-VERSION
en class: tkg-vsphere-default-CLUSTER-CLASS-VERSION
: Es la versión de class
predeterminada, establecida por tanzu cluster create
. Por ejemplo, class: tkg-vsphere-default-v1.0.0
.