Archivo de configuración de la infraestructura de vSphere

En esta página se describen los campos de un archivo de configuración de infraestructura de vSphere, que se usa en la configuración de dominios de topología. Este archivo es obligatorio si se ha definido infraConfigFilePath en el archivo de configuración del clúster de administrador.

En las secciones siguientes se describen los objetos y los campos de los recursos personalizados Secret y VSphereInfraConfig. En la sección Ejemplo de archivo de configuración que se muestra a continuación, se incluyen valores de ejemplo para los campos.

Todos los campos son obligatorios en el archivo de configuración, a menos que se indique que son opcionales.

Secret

Describe el secreto de las credenciales de vSphere, que almacena las credenciales de cada servidor vCenter. Añade o elimina secretos según sea necesario en función del número de instancias de vCenter Server que vayas a usar en el clúster de administración y en los clústeres de usuario. Cada objeto debe estar separado por ---. Puedes eliminar todos los secretos de este archivo de configuración una vez que se haya creado el clúster de administrador correctamente.

Secret.name

Inmutable
String

Nombre del secreto. Este nombre debe coincidir con uno de los nombres del campo credentials.vCenters[i].secretName del recurso personalizado VSphereInfraConfig.

Secret.namespace

Inmutable
Cadena
Prepoblado: kube-system

El espacio de nombres en el que se encuentra el secreto. Este espacio de nombres debe coincidir con el campo credentials.vCenters[i].secretNamespace correspondiente del recurso personalizado VSphereInfraConfig.

stringData.admin-username y stringData.admin-password

Las credenciales de la cuenta de usuario de vCenter que tiene el rol Administrador de vCenter Server o privilegios equivalentes. Para obtener más información, consulta los privilegios de las cuentas de usuario de vCenter.

stringData.ca-crt

Mutable
Cadena multilínea

El certificado de CA codificado en Base64 de vCenter Server.

Sigue los pasos que se indican en Obtener el certificado raíz de la AC de vCenter hasta que ejecutes el comando que muestra el certificado codificado con Base64. Copia y pega todo el certificado en este campo.

VSphereInfraConfig

La configuración de la infraestructura de vSphere. Esta configuración se almacenará en el clúster de administrador y se compartirá entre el clúster de administrador y todos los clústeres de usuario que gestione. Cada clúster de administrador debe tener una sola configuración de infraestructura de vSphere.

VSphereInfraConfig.name

Inmutable
Cadena
Rellenado previamente: predeterminado

Nombre de la configuración de la infraestructura de vSphere.

credentials

Las credenciales que usa la configuración de la infraestructura de vSphere.

credentials.vCenters

Una matriz de objetos, cada uno de los cuales contiene las referencias de Secret de cada servidor de vCenter. Añade o elimina entradas según sea necesario. Una vez creado el clúster de administrador, puedes añadir un nuevo objeto credentials.vCenters al archivo de configuración si es necesario y, a continuación, ejecutar gkectl update admin para actualizar la configuración del clúster.

credentials.vCenters[i].address

Inmutable
Cadena

La dirección IP o el nombre de host de tu servidor vCenter.

Para obtener más información, consulta Buscar la dirección de vCenter Server.

credentials.vCenters[i].secretName

Inmutable
String

Nombre del secreto. El nombre debe coincidir con un name del recurso personalizado Secret.

credentials.vCenters[i].secretNamespace

Inmutable
Cadena
kube-system rellenado previamente

El espacio de nombres en el que se encuentra el secreto. El espacio de nombres debe coincidir con el namespace correspondiente del recurso personalizado Secret.

topologyDomains

Matriz de objetos, cada uno de los cuales describe una configuración de dominio de topología. Añade o elimina entradas según sea necesario. Una vez creado el clúster de administrador, puedes añadir un nuevo objeto topologyDomains al archivo de configuración si es necesario y, a continuación, ejecutar gkectl update admin para actualizar la configuración del clúster.

topologyDomains[i].name

Inmutable
String

El nombre del dominio de topología.

topologyDomains[i].topologyLabels

Lista de etiquetas aplicadas a los nodos de este dominio de topología que usa el programador de Kubernetes. Cada etiqueta es un par "key":"value". Te recomendamos que especifiques solo una etiqueta por dominio de topología.

Ejemplo:

topologyDomains:
- name: "td-01"
  topologyLabel: "topology.examplepetstore.com/zone": "zone-1"

En el caso de la clave, puedes usar la restricción predeterminada a nivel de clúster de Kubernetes, "topology.kubernetes.io/zone", tal como se describe en Restricciones predeterminadas integradas.

Una vez creado el clúster, la etiqueta de topología que hayas especificado se asignará a las etiquetas de los nodos del dominio de topología. Si no usas "topology.kubernetes.io/zone" como clave, tendrás que configurar la clave de topología en el PodTemplate de tu Deployment, StatefulSet o ReplicaSet, según corresponda.

Por ejemplo, supongamos que ha definido la clave en la etiqueta de topología como "topology.examplepetstore.com/zone". En PodTemplate, especifica la clave como valor del campo topologySpreadConstraints.topologyKey. Esto permite que el programador de Kubernetes distribuya los pods en el dominio de topología para asegurar la alta disponibilidad y evitar la concentración excesiva en una sola zona en caso de fallo.

Para obtener más información sobre cómo configurar topologySpreadConstraints, consulta el artículo sobre restricciones de distribución de topología de pods de la documentación de Kubernetes.

topologyDomains[i].compute

Recursos de computación asignados a este dominio de topología.

topologyDomains[i].compute.vcenter

Inmutable
String

La dirección IP o el nombre de host de tu servidor vCenter.

Para obtener más información, consulta Buscar la dirección de vCenter Server.

topologyDomains[i].compute.datacenter

Inmutable
String

Ruta relativa de un centro de datos de vSphere.

El valor que especifiques será relativo a la carpeta raíz llamada /.

Si su centro de datos está en la carpeta raíz, el valor es el nombre del centro de datos.

topologyDomains[i].compute.cluster

Inmutable
String

La ruta relativa de un clúster de vSphere que representa los hosts ESXi en los que se ejecutarán las VMs de tu clúster en este dominio de topología. Este clúster de vSphere representa un subconjunto de los hosts ESXi físicos de tu centro de datos de vCenter.

El valor que especifiques será relativo a /.../DATA_CENTER/vm/.

Si tu clúster de vSphere está en la carpeta /.../DATA_CENTER/vm/, el valor es el nombre del clúster de vSphere.

De lo contrario, el valor es una ruta relativa que incluye una o varias carpetas junto con el nombre del clúster de vSphere.

topologyDomains[i].compute.resourcePool

Inmutable
String

Un grupo de recursos de vCenter para las VMs de este dominio de topología.

Si quieres usar el grupo de recursos predeterminado, asigna el valor VSPHERE_CLUSTER/Resources a este campo.

Ejemplo:

topologyDomains:
- name: "td-01"
  compute:
    resourcePool: "my-vsphere-cluster/Resources"

Si quieres usar un grupo de recursos que ya has creado, asigna a este campo la ruta relativa del grupo de recursos.

El valor que especifiques será relativo a /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/.

Si tu grupo de recursos es un elemento secundario directo de /.../DATA_CENTER/host/.../VSPHERE_CLUSTER/Resources/ , el valor es el nombre del grupo de recursos.

Ejemplo:

topologyDomains:
- name: "td-01"
  compute:
    resourcePool: "my-resource-pool"

De lo contrario, el valor es una ruta relativa que tiene dos o más grupos de recursos.

Ejemplo:

topologyDomains:
- name: "td-01"
  compute:
    resourcePool: "resource-pool-1/resource-pool-2"

topologyDomains[i].compute.folder

Opcional
Inmutable
Cadena

Ruta relativa de una carpeta de vSphere que ya has creado. Esta carpeta contendrá todas las VMs de este dominio de topología.

Si no especifica ningún valor, todas las máquinas virtuales de este dominio de topología se colocarán en /.../DATA_CENTER/vm/.

Si especificas un valor, será relativo a /.../DATA_CENTER/vm/.

El valor puede ser el nombre de una carpeta.

Ejemplo:

topologyDomains:
- name: "td-01"
  compute:
    folder: "my-folder"

También puede ser una ruta relativa que incluya más de una carpeta.

Ejemplo:

topologyDomains:
- name: "td-01"
  compute:
    folder: "folders/folder-1"

topologyDomains[i].storage

Configuraciones de almacenamiento de este dominio de topología. Solo lo usan los discos de datos y los discos de arranque de las máquinas virtuales. Los volúmenes de CNS (aprovisionados por PVCs y PVs) no se incluyen.

Se puede especificar un valor para storage.policyName o storage.datastore, pero no para ambos.

topologyDomains[i].storage.policyName

Obligatorio si no se especifica storage.datastore
Inmutable
Cadena

Nombre de una política de almacenamiento de VM para los nodos del clúster.

Para obtener más información, consulta Configurar una política de almacenamiento.

Debe especificar un valor para storage.datastore o storage.policyName, pero no para ambos. Si especifica un valor para este campo, no especifique ningún valor para storage.datastore.

topologyDomains[i].storage.datastore

Obligatorio si no se especifica storage.policyName
Inmutable
Cadena

Nombre de un almacén de datos de vSphere de tu clúster de administración.

El valor que especifique debe ser un nombre, no una ruta. No incluyas ninguna carpeta en el valor.

Ejemplo:

topologyDomains:
- name: "td-01"
  storage:
    datastore: "my-datastore"

Debe especificar un valor para storage.datastore o storage.PolicyName, pero no para ambos. Si especifica un valor para este campo, no especifique ningún valor para storage.PolicyName.

topologyDomains[i].network

Configuraciones de red de este dominio de topología.

topologyDomains[i].network.vsphereNetwork

Inmutable
Cadena

El nombre de la red de vSphere de los nodos del clúster.

Ejemplo:

topologyDomains:
- name: "td-01"
  network:
    vsphereNetwork: "my-network"

Si el nombre contiene un carácter especial, debes usar una secuencia de escape.

Caracteres especiales Secuencia de escape
Barra inclinada (/) %2f
Barra inversa (\) %5c
Símbolo de porcentaje (%) %25

Si el nombre de la red no es único en su centro de datos, puede especificar una ruta completa.

Ejemplo:

topologyDomains:
- name: "td-01"
  network:
    vsphereNetwork: "/data-centers/data-center-1/network/my-network"

topologyDomains[i].network.gateway

Dirección de la pasarela de la subred de los nodos del clúster en este dominio de topología. La dirección IP debe ser la misma que la dirección de la pasarela del archivo de bloque de IP. Por ejemplo, consulta el archivo de bloque de IPs de ejemplo para dominios de topología.

topologyDomains[i].network.dnsServers

Inmutable
Array de cadenas.
El número máximo de elementos de la matriz es tres.

Las direcciones IP de los servidores DNS de las VMs.

topologyDomains[i].network.ntpServers

Inmutable
Array de cadenas

Las direcciones IP de los servidores de tiempo que deben usar las VMs.

topologyDomains[i].network.searchDomains

Opcional
Inmutable
Array de cadenas

Dominios de búsqueda de DNS que usarán las VMs. Estos dominios se usan como parte de una lista de búsqueda de dominios.

Ejemplo:

topologyDomains:
- name: "td-01"
  network:
    hostConfig:
      searchDomainsForDNS:
      - "my.local.com"

topologyDomains[i].defaultTopologyDomain

Inmutable
Opcional
Cadena

Nombre del dominio de topología predeterminado. Este nombre debe coincidir con uno de los nombres de topologyDomains[i].name. Si no especificas un nombre predeterminado al crear el clúster, puedes actualizar el archivo de configuración con un nombre si es necesario y, a continuación, ejecutar gkectl update admin para actualizar la configuración del clúster.

Los nodos se asignarán al dominio de topología predeterminado a menos que definas un dominio de topología para los nodos del plano de control o los nodos de un grupo de nodos.

Ejemplo de archivo de configuración

En el ejemplo siguiente se muestra un archivo de configuración con los valores rellenados.

apiVersion: v1
kind: Secret
metadata:
  namespace: kube-system
  name: "vsphere-auth-0"
stringData:
  admin-username: "example-admi1n@vsphere.local"
  admin-password: "GltFl4@5f"
  ca-crt: |
    -----BEGIN CERTIFICATE-----
    MIIEITCCAwmgAwIBAgIJAPFVaTIKdyCbMA0GCSqGSIb3DQEBCwUAMIGbMQswCQYD
    VQQDDAJDQTEXMBUGCgmSJomT8ixkARkWB3ZzcGhlcmUxFTATBgoJkiaJk/IsZAEZ
    FgVsb2NhbDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExHTAbBgNV
    BAoMFGF0bC1xdWFsLXZjMDMuYW50aG9zMRswGQYDVQQLDBJWTXdhcmUgRW5naW5l
    ZXJpbmcwHhcNMjIwODA3MDIzNTQ4WhcNMzIwODA0MDIzNTQ4WjCBmzELMAkGA1UE
    AwwCQ0ExFzAVBgoJkiaJk/IsZAEZFgd2c3BoZXJlMRUwEwYKCZImiZPyLGQBGRYF
    bG9jYWwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMR0wGwYDVQQK
    DBRhdGwtcXVhbC12YzAzLmFudGhvczEbMBkGA1UECwwSVk13YXJlIEVuZ2luZWVy
    aW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz5MOjTQ4FHcIYjzo
    bcIFJmnVDjSnLGYDdVayhmUo1+CC5RqJRuAnJmDYt9PY/lJhVDVUSFHWJdvRjeAP
    0+xjRs33VJctzjDqwy2xRMVxoA+c8DfvALHIK+rHwIidGNt5eb2HOrB1MSCB5KFi
    gkXhJf/2kiEPiTMqbu2nWySdBfZRVSYs1jSiAuz/cgyglfVUcRFn4oRhR35QZ8gj
    t54IGY9atzKCYuvFAgeTCGBxI30cZRQDCtkWyWHPdK3GniNW/qh4C7gC+VI+Pnh+
    fUGtAx3Px/O5h5RpHDmvuSqMNoWEsChKGgbrbkZGB9OWL8OsVAUnz8TXC6s4/AG1
    0GGDGQIDAQABo2YwZDAdBgNVHQ4EFgQUM8RXjNIlar+S6uZBSH+3oVkUdGwwHwYD
    VR0RBBgwFoEOZW1haWxAYWNtZS5jb22HBH8AAAEwDgYDVR0PAQH/BAQDAgEGMBIG
    A1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBABIO4RO3Jk6PaDyt
    +PGP1ng5fpcKbwCi90KfEkfAd/HV3YM6suEhCar6azKXJutL9gGzidi9NvKv43Pg
    hOOuTQWbdwuhqgF3YPKZ1HJWSV0NR5J9WFjp9rk1EdM6NApUwmy7EIbo8TY7M6SL
    jaR8VgaelG2PSf2S4ybxKdJ2gx2pPTcoYpd/+d9qaDFLNWa4irzB6sqBUVlkAMX+
    JW4FmMs8ym4aLzlFBzG5gjK1PCsBugbVRSAbF+Y8LwnMoe2WMiF1nNXoKSiaQm0A
    Z0psC1b37G9dKzr9soLS5OENFrAEClfVD5luETvUHo51VhanetWbZmL5dK8iGAuj
    otykS2w=
    -----END CERTIFICATE-----

---
apiVersion: v1
kind: Secret
metadata:
  namespace: kube-system
  name: "vsphere-auth-1"
stringData:
  admin-username: "example-admin2@vsphere.local"
  admin-password: "xuBAcK5lT@uq2Ix"
  ca-crt: |
    -----BEGIN CERTIFICATE-----
    MIIEITCCAwmgAwIBAgIJAMJPzGX27yKBMA0GCSqGSIb3DQEBCwUAMIGbMQswCQYD
    VQQDDAJDQTEXMBUGCgmSJomT8ixkARkWB3ZzcGhlcmUxFTATBgoJkiaJk/IsZAEZ
    FgVsb2NhbDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExHTAbBgNV
    BAoMFGF0bC1xdWFsLXZjMTMuYW50aG9zMRswGQYDVQQLDBJWTXdhcmUgRW5naW5l
    ZXJpbmcwHhcNMjMxMjAzMjM0NDM5WhcNMzMxMTMwMjM0NDM5WjCBmzELMAkGA1UE
    AwwCQ0ExFzAVBgoJkiaJk/IsZAEZFgd2c3BoZXJlMRUwEwYKCZImiZPyLGQBGRYF
    bG9jYWwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMR0wGwYDVQQK
    DBRhdGwtcXVhbC12YzEzLmFudGhvczEbMBkGA1UECwwSVk13YXJlIEVuZ2luZWVy
    aW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6d2PidzORMEOuIKa
    XOXB4nB7ukYGOeju1nKJ90KnvKfZBNjN1JKuNPQcZelFyEcUEHnI18cA2VGbpXbF
    O9jMlxu5VlhPepjEPAgtcAuCZNlxzRDip9u9ar3ma2SxMCogz91qDZKSE/PQpqNI
    Ozpus6YsHmK3jzAUq/Zs1+wl9HFot0e5kPf79oqQC8gPxJqmFQyGm50SdOMwj5sD
    pYm/3TZZ1gw4WftBhDecO9hKwcReCVjeVgp5omMcFHwIhqUBqZM3qX5gJaxE7ELO
    xu66VibA1g70Xzso2hGVQ13ruGjgUAjDsICOTpHHcT33KoMRzn2BWlKtmsnThIrE
    nbR9QQIDAQABo2YwZDAdBgNVHQ4EFgQUI84+93Iniliyzs3HSDatbYGsiJ4wHwYD
    VR0RBBgwFoEOZW1haWxAYWNtZS5jb22HBH8AAAEwDgYDVR0PAQH/BAQDAgEGMBIG
    A1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBAIIihWWIcl+sKRmS
    QB4wkjR9UA7QV96lbm+HFE5qvP5xVXss+PmSjLjeNZFfX65tGlKXWDmYstcw/jon
    hnJVe/jxjIZ3GddrVfHdwOEQ+FORQyfxkLAQuHKvm/2PobGNsU0rOw14Ur4Eea6P
    pIl70eJhRX22dkOhb+y6jz+k+L52HbzMz/X6yUnTFAJzobJD0C1vGAx3FgPdbUqF
    fXYO/Q8NNrk+4561eT3x9T4RIj/0ZkBal0yQEdYnd+lOIkEmk7vmO1/eyb6+66rs
    3wz4DIxtfhJIUlj0mBL0KkyDDDoc0oFTf5V/xrYls1dJ35DNFoG/KBJGgGbaW41t
    vTz+0JA=
    -----END CERTIFICATE-----

---
apiVersion: v1
kind: Secret
metadata:
  namespace: kube-system
  name: "vsphere-auth-2"
stringData:
  admin-username: "example-admin3@vsphere.local"
  admin-password: "nWKCITwqKTaY5@M5"
  ca-crt: |
    -----BEGIN CERTIFICATE-----
    MIIEITCCAwmgAwIBAgIJAN4alqihWQukMA0GCSqGSIb3DQEBCwUAMIGbMQswCQYD
    VQQDDAJDQTEXMBUGCgmSJomT8ixkARkWB3ZzcGhlcmUxFTATBgoJkiaJk/IsZAEZ
    FgVsb2NhbDELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExHTAbBgNV
    BAoMFGF0bC1xdWFsLXZjMDcuYW50aG9zMRswGQYDVQQLDBJWTXdhcmUgRW5naW5l
    ZXJpbmcwHhcNMjMwMzI2MTc0NjE1WhcNMzMwMzIzMTc0NjE1WjCBmzELMAkGA1UE
    AwwCQ0ExFzAVBgoJkiaJk/IsZAEZFgd2c3BoZXJlMRUwEwYKCZImiZPyLGQBGRYF
    bG9jYWwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMR0wGwYDVQQK
    DBRhdGwtcXVhbC12YzA3LmFudGhvczEbMBkGA1UECwwSVk13YXJlIEVuZ2luZWVy
    aW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuvM3aSemSrBxWVei
    6pYlRvLWaCva2Q0MQvmUdVISa9uul/PHE2lwAcTAAr3Sayat2D5IRjd7NWbzaLVQ
    Sxel0TINpMfITDT0x6lZ8FfKgrRpY30CPZQlgVo16rGKE0V+wHTkGYIzRITETzuu
    z6nkpzvryh6JadSf4wrGj1TmrYpqYEmdzf7bLmz4Rql5PgVco7z+pqo0BA+UU/Uc
    /OtEcVKAyaifHzZwPlscOpKpskQrP4Ke6i3iuyrEmaDH+4sQ1TDrcYpUBfqkl+xT
    0G6ZKHs6KP18x0Xg4ifeC8x7sgajJ20TpbkDY4KtBdraj3HB4gZCxg7qY/0G75yF
    C2bZ4wIDAQABo2YwZDAdBgNVHQ4EFgQUeE+R+gRo1oU578dyiyq4tPYefpIwHwYD
    VR0RBBgwFoEOZW1haWxAYWNtZS5jb22HBH8AAAEwDgYDVR0PAQH/BAQDAgEGMBIG
    A1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEBADzBUXsxICPGxt1o
    wPrbmWhkrPy2pNr9unP/d+Py20groZ/KQ/d6dzDN7pxc6BtQbMfho7pij+mf3aHq
    oBo+J80Ha/vZExMMwYrp/OTlxy2Jdb5pzxZQtWqNVS5SkzNtDs7DhXDTY19TBZhZ
    4d+/g2eSq2/dRT7zF8q3LH6mmq0EbSRSDOm8r6AUdWt+Ov7YKTYk9c+5UTL9M9u4
    1+VBkF34hB/xc1fsFSPHTQQDOlAy5HTZgM3ygtuhmAY+UUQVLZf+8sJh+5zqc6gw
    Ecnz7HRcRPUitKACsxUm4f5VHiKUMrIBP5U1dovl4kUN8Ue0e+KnIjIGKjp4wrHi
    UtQboUw=
    -----END CERTIFICATE-----

---
apiVersion: vmware.cluster.gke.io/v1alpha1
kind: VSphereInfraConfig
metadata:
  name: default
credentials:
  vCenters:
  - address: "vc03.example"
    secretName: "vsphere-auth-0"
    secretNamespace: "kube-system"
  - address: "vc13.example"
    secretName: "vsphere-auth-1"
    secretNamespace: "kube-system"
  - address: "vc07.example"
    secretName: "vsphere-auth-2"
    secretNamespace: "kube-system"
topologyDomains:
- name: "topology-domain-0"
  topologyLabels:
    "topology.kubernetes.io/zone": "zone-0"
  compute:
    vcenter: "vc03.example"
    datacenter: "vc03"
    cluster: "workloads3"
    resourcePool: "vc03-default-pool"
  storage:
    datastore: "vsanDatastore"
  network:
    vsphereNetwork: "qual-343"
    gateway: "203.0.113.1"
    dnsServers:
    - "192.0.2.1"
    - "192.0.2.2"
    ntpServers:
    - "203.0.113.50"
- name: "topology-domain-1"
  topologyLabels:
    "topology.kubernetes.io/zone": "zone-1"
  compute:
    vcenter: "vc13.example"
    datacenter: "vc13-dc1"
    cluster: "workloads13-1"
    resourcePool: "vc13-dc1-default-pool"
  storage:
    datastore: "vsanDatastore-1c"
  network:
    vsphereNetwork: "scale-332"
    gateway: "203.0.113.2"
    dnsServers:
    - "192.0.2.10"
    - "192.0.2.11"
    ntpServers:
    - "203.0.113.51"
- name: "topology-domain-2"
  topologyLabels:
    "topology.kubernetes.io/zone": "zone-2"
  compute:
    vcenter: "vc07.example"
    datacenter: "vc07"
    cluster: "workloads7"
    resourcePool: "vc07-default-pool"
  storage:
    datastore: "vsanDatastore"
  network:
    vsphereNetwork: "qual-323"
    gateway: "203.0.113.3"
    dnsServers:
    - "192.0.2.21"
    - "192.0.2.22"
    ntpServers:
    - "203.0.113.52"