vSphere con file di configurazione del cluster di supervisore

Questo argomento spiega come utilizzare un file di configurazione piatto o una specifica di oggetto di tipo Kubernetes per configurare un cluster di carichi di lavoro Tanzu Kubernetes Grid (TKG) prima di distribuirlo su vSphere 8 con Tanzu. Per configurare un cluster del carico di lavoro per la distribuzione in vSphere con un cluster di gestione autonomo, vedere File di configurazione per vSphere con cluster di gestione autonomo.

Per informazioni generali su come configurare i cluster del carico di lavoro utilizzando i file di configurazione e le specifiche degli oggetti, vedere File di configurazione e specifiche degli oggetti.

Per utilizzare le funzionalità del cluster di carichi di lavoro specifiche di vSphere che richiedono una configurazione al di fuori del file di configurazione del cluster o delle specifiche degli oggetti, vedere Clusters su vSphere.

Panoramica

Per configurare un cluster del carico di lavoro prima di distribuirlo in vSphere with Tanzu, creare un file di specifica di oggetto di tipo Kubernetes se si sta configurando un cluster basato sulla classe o un file di configurazione del cluster se si sta configurando un cluster TKC. Quando si passa uno di questi file all'opzione -f di tanzu cluster create, la CLI di Tanzu utilizza le informazioni di configurazione definite nel file per connettersi all'account vSphere e creare le risorse che il cluster utilizzerà.

Per configurare:

Per informazioni sui tipi di cluster precedenti, vedere Tipi di cluster del carico di lavoro.

Configurazione di un cluster basato sulla classe distribuito dal supervisore

Per configurare un cluster del carico di lavoro per la distribuzione in vSphere 8 with Tanzu:

  1. Creare o adattare una specifica di oggetto Cluster. La documentazione di vSphere 8 include specifiche dell'oggetto Cluster di esempio da utilizzare a questo scopo:

    Impostare i tipi di macchina virtuale, le dimensioni e altre configurazioni di base del cluster nel blocco topology del file della specifica. Per informazioni sul blocco topology, vedere Oggetto cluster basato sulla classe e struttura della topologia e Variabili della topologia della classe del cluster, di seguito.

  2. (Facoltativo) Per personalizzare gli attributi che non possono essere impostati nell'oggetto ClusterCluster stesso, ad esempio le impostazioni una tantum dell'interfaccia del container nell'infrastruttura del cluster, vedere Configurazione delle impostazioni una tantum dell'infrastruttura.

Oggetto cluster basato sulla classe e struttura della topologia

Le impostazioni di primo livello configurabili in un oggetto Cluster con tipo tanzukubernetescluster sono le seguenti. Vedere Variabili della topologia della classe del cluster per informazioni sugli elementi variables che è possibile configurare:

spec:
  clusterNetwork
    apiServerPort
    services
      cidrBlocks
    pods
      cidrBlocks
    serviceDomain
  controlPlaneEndpoint
    host
    port
  topology
    class
    version
    rolloutAfter
    controlPlane
      metadata
      replicas
      nodeDrainTimeout
      nodeDeletionTimeout
      machineHealthCheck
        maxUnhealthy
        nodeStartupTimeout
        unhealthyConditions
    workers
      machineDeployments
        metadata
        - class
        name
        failureDomain
        replicas
        nodeDrainTimeout
        nodeDeletionTimeout
        machineHealthCheck
          maxUnhealthy
          nodeStartupTimeout
          unhealthyConditions
        variables
          name
          value
  variables
    name
    value

Questi campi sono impostati nella specifica del tipo di oggetto Cluster: cluster_types.go.

  • Campi facoltativi: Per ogni campo, l'impostazione json: indica se il campo è facoltativo. I campi facoltativi hanno l'impostazione omitempty.
  • Le strutture nidificate in base al riferimento nella specifica del tipo sono rientrate nel file YAML delle specifiche dell'oggetto. Ad esempio, poiché la struttura Topology contiene *Workers nella specifica del tipo, l'elemento workers è rientrato sotto topology nella specifica dell'oggetto.

Le opzioni - class e variables sono definite nella classe del cluster dell'oggetto Cluster, impostata come valore spec.topology.class del cluster. Ad esempio, in vSphere with Tanzu questo è un oggetto ClusterClass denominato tanzukubernetescluster, che è diverso da un oggetto TanzuKubernetesCluster, come indicato in Tipi di cluster del carico di lavoro

Le variables configurabili includono vmClass, storageClass, proxy, nodeLabels, extensionCert e molte altre, come elencato di seguito in Variabili della topologia della classe del cluster. Queste variabili configurano e sostituiscono le impostazioni negli oggetti sottostanti all'oggetto cluster, ad esempio gli oggetti KubeAdmConfig e Machine.

Variabili della topologia della classe del cluster

La classe del cluster tanzukubernetescluster, ovvero la ClusterClass predefinita nei cluster del carico di lavoro di vSphere with Tanzu, supporta le variabili seguenti impostate in topology.variables e topology.workers.machineDeployments.variables. Le impostazioni delle variabili specifiche delle distribuzioni delle macchine, come i pool di nodi, sostituiscono le impostazioni globali.

Queste variabili configurano e sostituiscono le impostazioni negli oggetti sottostanti all'oggetto cluster, ad esempio vmClass, storageClass e proxy impostate negli oggetti KubeAdmConfig e Machine. In questo modo gli utenti possono configurare completamente un cluster nella specifica dell'oggetto Cluster senza dover modificare le specifiche degli oggetti di livello inferiore:

  • clusterEncryptionConfigYaml
  • controlPlaneVolumes
  • defaultRegistrySecret
  • defaultStorageClass
  • extensionCert
  • nodePoolLabels
  • nodePoolTaints
  • nodePoolVolumes
  • ntp
  • proxy
  • storageClass
  • storageClasses
  • TKR_DATA
  • trust
  • user
  • vmClass

I seguenti argomenti della documentazione di vSphere 8 descrivono come riconfigurare un cluster in esecuzione modificando le impostazioni storageClass e vmClass:

Configurazione di un cluster TKC distribuito da un supervisore (legacy)

Per creare un file di configurazione del cluster per un cluster del carico di lavoro TKC (legacy) in vSphere 8, è possibile copiare in vSphere with Tanzu un file di configurazione esistente per una distribuzione precedente e aggiornarlo. In alternativa, è possibile creare un file da zero utilizzando un modello vuoto.

Per configurare un cluster del carico di lavoro distribuito da un supervisore di vSphere with Tanzu, impostare variabili per definire le classi di storage, le classi di macchine virtuali, il dominio del servizio, lo spazio dei nomi e altri valori necessari per creare il cluster. Nella tabella seguente sono elencate le variabili che è possibile includere nel file di configurazione per un cluster basato su TKC. In alternativa, è possibile impostarle come variabili di ambiente locali.

Variabili obbligatorie
Variabile Tipo di valore o esempio Descrizione
INFRASTRUCTURE_PROVIDER tkg-service-vsphere Sempre tkg-service-vsphere per gli oggetti TanzuKubernetesCluster in vSphere with Tanzu.
CLUSTER_PLAN dev, prod o un piano personalizzato Imposta i conteggi dei nodi.
CLUSTER_CIDR Intervallo CIDR Intervallo CIDR da utilizzare per i pod. L'intervallo consigliato è 100.96.0.0/11. Modificare questo valore solo se l'intervallo consigliato non è disponibile.
SERVICE_CIDR Intervallo CIDR da utilizzare per i servizi Kubernetes. L'intervallo consigliato è 100.64.0.0/13. Modificare questo valore solo se l'intervallo consigliato non è disponibile.
SERVICE_DOMAIN Dominio Ad esempio, my.example.com o cluster.local se non si utilizza DNS. Se si intende assegnare nomi di dominio completi con i nodi, è necessaria la ricerca DNS.
CONTROL_PLANE_VM_CLASS Classe di macchina virtuale standard per vSphere with Tanzu, ad esempio guaranteed-large.
Vedere Utilizzo di classi di macchine virtuali con i cluster TKG nel supervisore nella documentazione di vSphere with Tanzu.
Classe di macchina virtuale per i nodi del piano di controllo
WORKER_VM_CLASS Classe di macchina virtuale per i nodi worker
Variabili facoltative
Variabile Tipo di valore o esempio Descrizione
CLUSTER_NAME Stringa Sostituita dall'argomento CLUSTER-NAME passato a tanzu cluster create.
Questo nome deve essere conforme ai requisiti del nome host DNS in base alla RFC 952 e alla modifica indicata nella RFC 1123 e può contenere al massimo 42 caratteri. Note: è necessario specificare un nome univoco per tutti i cluster del carico di lavoro in tutti gli spazi dei nomi. Se si specifica un nome di cluster in uso in un altro spazio dei nomi, la distribuzione del cluster non riesce perché si verifica un errore.
NAMESPACE Spazio dei nomi; l'impostazione predefinita è default. Spazio dei nomi in cui distribuire il cluster. Per individuare lo spazio dei nomi del supervisore, eseguire kubectl get namespaces.
CNI antrea o calico. L'impostazione predefinita è antrea Container Network Interface per i carichi di lavoro ospitati, ovvero Antrea o Calico.
CONTROL_PLANE_MACHINE_COUNT Numero intero. CONTROL_PLANE_MACHINE_COUNT deve essere un numero dispari.
L'impostazione predefinita è 1 per dev e 3 per prod, come impostato da CLUSTER_PLAN.
Distribuire un cluster del carico di lavoro con più nodi del piano di controllo rispetto al valore predefinito di dev o prod.
WORKER_MACHINE_COUNT Distribuire un cluster del carico di lavoro con più nodi worker rispetto al valore predefinito dev o prod.
STORAGE_CLASSES La stringa vuota ““ consente ai cluster di utilizzare qualsiasi classe di storage nello spazio dei nomi o un elenco di valori separati da virgola di kubectl get storageclasses, ad esempio “SC-1,SC-2,SC-3”. Classi di storage disponibili per la personalizzazione dei nodi.
DEFAULT_STORAGE_CLASS Stringa vuota ”” se non è presente alcun valore predefinito o valore proveniente dalla CLI come indicato sopra. Classe di storage predefinita per il piano di controllo o i worker.
CONTROL_PLANE_STORAGE_CLASS Valore restituito da kubectl get storageclasses Classe di storage predefinita per i nodi del piano di controllo.
WORKER_STORAGE_CLASS Classe di storage predefinita per i nodi worker.
NODE_POOL_0_NAME Stringa Nome, etichette e taint del pool di nodi. Un TanzuKubernetesCluster può avere un solo pool di nodi.
NODE_POOL_0_LABELS Elenco di stringhe JSON, ad esempio [“label1”, “label2”]["label1", "label2"]
NODE_POOL_0_TAINTS Elenco di stringhe di coppie chiave-valore JSON, ad esempio, [{“key1”: “value1”}, {“key2”: “value2”}]

È possibile impostare le variabili precedenti eseguendo una delle seguenti opzioni:

  • Includerle nel file di configurazione del cluster passato all'opzione --file della CLI di Tanzu. Ad esempio:

    CONTROL_PLANE_VM_CLASS: guaranteed-large
    
  • Nella riga di comando, impostarle come variabili di ambiente locali eseguendo export (in Linux e macOS) o SET (in Windows). Ad esempio:

    export CONTROL_PLANE_VM_CLASS=guaranteed-large
    
    Nota

    se si desidera configurare impostazioni del proxy univoche per un cluster del carico di lavoro, è possibile impostare TKG_HTTP_PROXY, TKG_HTTPS_PROXY e NO_PROXY come variabili di ambiente e quindi utilizzare la CLI di Tanzu per creare il cluster. Queste variabili hanno la precedenza sulla configurazione del proxy esistente in vSphere with Tanzu.

Passaggi successivi

Passare a Creazione di cluster del carico di lavoro. Dopo aver distribuito un cluster del carico di lavoro in vSphere, è necessario configurare le prenotazioni DHCP dei relativi nodi e il DNS dell'endpoint come descritto in Configurazione delle prenotazioni DHCP dei nodi e del record DNS dell'endpoint (solo vSphere).

check-circle-line exclamation-circle-line close-line
Scroll to top icon