File di configurazione e specifiche degli oggetti

Questo argomento illustra come configurare i cluster del carico di lavoro di Tanzu Kubernetes Grid (TKG) utilizzando una specifica di oggetto di tipo Kubernetes. Per istruzioni specifiche di IaaS, vedere:

Tipi di cluster

La modalità di configurazione di un cluster del carico di lavoro dipende dal tipo di cluster, come indicato nelle sezioni seguenti.

  • I cluster basati sulla classe (tipo predefinito) utilizzano una specifica di oggetto di tipo Kubernetes per l'oggetto Cluster. Per creare un cluster basato sulla classe, è possibile passare questa specifica di oggetto o un file di configurazione del cluster con una struttura flat che imposta variabili maiuscole con il carattere di sottolineatura come CLUSTER_NAME a tanzu cluster create.

    • Le personalizzazioni più avanzate potrebbero richiedere anche una specifica per ClusterBootstrap e gli oggetti a cui fa riferimento.
  • I cluster basati sul piano e i cluster TKC (tipo legacy) utilizzano un file di configurazione del cluster con una struttura flat che imposta variabili maiuscole con il carattere di sottolineatura come CLUSTER_NAME. Per creare un cluster legacy, passare questo file di configurazione a tanzu cluster create.

    • Le personalizzazioni più avanzate potrebbero richiedere overlay ytt per personalizzare i cluster del carico di lavoro o i piani dei cluster. Per informazioni su come scaricare e installare ytt, vedere Installazione degli strumenti Carvel.

Per ulteriori informazioni sui tipi di cluster precedenti e sui Cluster API Provider che utilizzano, vedere:

Per informazioni su quale file di configurazione scegliere per il cluster del carico di lavoro, vedere la tabella seguente.

File di configurazione

È possibile utilizzare un... con la CLI di Tanzu per creare cluster del carico di lavoro di tipo... nell'infrastruttura...
File di configurazione del cluster flat
  • Cluster basati sulla classe
  • Cluster basati sul piano
  • Cluster TKC
  • Cluster basati sulla classe in vSphere 7 e 8 con un cluster di gestione autonomo; AWS; Azure
  • Cluster basati sul piano in vSphere 7 e 8 con un cluster di gestione autonomo; AWS; Azure
  • Cluster TKC in vSphere 8 con supervisore
Specifica di un oggetto di tipo Kubernetes Cluster basati sulla classe vSphere 8 con supervisore; vSphere 7 e 8 con un cluster di gestione autonomo; AWS; Azure

Configurazione di un cluster del carico di lavoro con un file di configurazione del cluster

È possibile utilizzare un file di configurazione del cluster per configurare i seguenti tipi di cluster:

  • Cluster basati sulla classe: Sono incluse le distribuzioni in:

    • vSphere 7 e 8 con un cluster di gestione autonomo
    • AWS
    • Azure

    Se si desidera distribuire un carico di lavoro basato sulla classe in vSphere 8 con supervisore, è necessario distribuirlo dalla specifica di un oggetto, come descritto in Configurazione di un cluster basato sulla classe distribuito dal supervisore (solo vSphere 8).

  • (Legacy) Cluster TKC e basati sul piano: Sono incluse le distribuzioni in:

    • Per i cluster basati sul piano: vSphere 7 e 8 con un cluster di gestione autonomo; AWS; Azure
    • Per i cluster TKC: vSphere 8 con supervisore

Informazioni sul file di configurazione del cluster

Prima di distribuire un cluster del carico di lavoro in vSphere, AWS o Azure, creare un file di configurazione per il cluster. Quando si passa questo file all'opzione --file di tanzu cluster create, la CLI di Tanzu utilizza le informazioni di configurazione definite nel file per connettersi alla piattaforma di destinazione e creare le risorse che il cluster utilizzerà.

Per creare un file di configurazione del cluster, è possibile copiare un file di configurazione esistente per una distribuzione precedente e aggiornarlo. In alternativa, è possibile creare un file da zero utilizzando un modello vuoto:

Creazione del primo file di configurazione del cluster

Quando si distribuisce un cluster del carico di lavoro, la maggior parte della configurazione per il cluster è uguale alla configurazione del cluster di gestione autonomo utilizzato per distribuirlo. Per questo motivo, il modo più semplice per creare un file di configurazione per un cluster del carico di lavoro consiste nell'iniziare con una copia del file di configurazione del cluster di gestione autonomo.

  1. Individuare il file di configurazione YAML per il cluster di gestione:

    • Se il cluster di gestione è stato distribuito dall'interfaccia del programma di installazione e non è stata specificata l'opzione --file durante tanzu mc create --ui, il file di configurazione viene salvato in ~/.config/tanzu/tkg/clusterconfigs/. Il nome del file è generato in modo casuale, ad esempio bm8xk9bv1v.yaml.
    • Se il cluster di gestione è stato distribuito dall'interfaccia del programma di installazione ed è stata specificata l'opzione --file, la configurazione del cluster di gestione viene prelevata dal file specificato.
    • Se il cluster di gestione è stato distribuito dalla CLI di Tanzu senza utilizzare l'interfaccia del programma di installazione, la configurazione del cluster di gestione viene eseguita da un file specificato nell'opzione --file o dalla posizione predefinita ~/.config/tanzu/tkg/cluster-config.yaml.
  2. Creare una copia del file di configurazione del cluster di gestione e salvarlo con un nuovo nome. Ad esempio, salvare il file come my-aws-cluster.yaml, my-azure-cluster.yaml o my-vsphere-cluster.yaml.

  3. Aggiornare le impostazioni nel file di configurazione del cluster. Se si desidera configurare un cluster del carico di lavoro per l'utilizzo di un sistema operativo diverso da quello predefinito, ovvero Ubuntu 20.04, è necessario impostare i valori di OS_NAME e OS_VERSION. L'interfaccia del programma di installazione non include i valori del sistema operativo della macchina virtuale dei nodi nei file di configurazione del cluster di gestione che salva in ~/.config/tanzu/tkg/clusterconfigs.

  4. Salvare il file.

Per preparare un file di configurazione del cluster per un cluster TKC in vSphere 8 con supervisore, vedere Configurazione di un cluster TKC distribuito da un supervisore (Legacy).

Configurazione di un cluster del carico di lavoro con una specifica di oggetto

È possibile utilizzare un file di specifica di oggetto di tipo Kubernetes per distribuire un cluster del carico di lavoro basato sulla classe in:

  • vSphere 7 e 8 senza supervisore
  • vSphere 8 con supervisore
  • AWS
  • Azure

Informazioni sul file di specifica di oggetto

Un file della specifica di oggetto ha lo stesso scopo di un file di configurazione del cluster. Quando si passa una specifica di oggetto all'opzione --file di tanzu cluster create, la CLI di Tanzu crea il cluster utilizzando le informazioni di configurazione definite nella specifica dell'oggetto.

Creazione del primo file di specifica di oggetto

Come per gli altri oggetti di Kubernetes, configurare un cluster del carico di lavoro basato sulla classe creando e modificando le specifiche degli oggetti. Per gli oggetti cluster, tali specifiche sono:

  • Oggetto Cluster: configura la maggior parte delle opzioni del cluster, ad esempio la topologia del cluster. È possibile modificare e riapplicare questa specifica dell'oggetto per modificare la configurazione di un cluster in esecuzione.
  • (Facoltativo; vSphere with Tanzu) Oggetto ClusterBootstrap: configura le opzioni non predefinite che vengono applicate solo quando il cluster viene creato, ad esempio Container Network Interface (CNI) e Container Storage Interface (CSI), e che non possono essere riconfigurate in un cluster in esecuzione. Per ulteriori informazioni, vedere Configurazione delle impostazioni una tantum dell'infrastruttura.

Per creare il primo file di specifica di oggetto:

  • Se si distribuisce un cluster del carico di lavoro basato sulla classe in vSphere senza supervisore, AWS o Azure, è possibile utilizzare la CLI di Tanzu per convertire un file di configurazione del cluster in un file di specifica di oggetto senza distribuire il cluster:

    • (Configurazione globale) Utilizzare la funzionalità auto-apply-generated-clusterclass-based-configuration della CLI di Tanzu. Per impostazione predefinita, questa funzionalità è impostata su false. Quando auto-apply-generated-clusterclass-based-configuration è impostato su false e si esegue tanzu cluster create con il flag --file, il comando converte il file di configurazione del cluster in un file di specifiche dell'oggetto ed esce senza creare il cluster. Dopo aver esaminato la configurazione, eseguire nuovamente tanzu cluster create con il file di specifica di oggetto generato dalla CLI di Tanzu, come descritto in Creazione di un cluster basato sulla classe dalla specifica di oggetto. Se è stata aggiornata la configurazione predefinita, per impostarla nuovamente su false, eseguire:

      tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
      
    • (Cluster singolo) Passare l'opzione --dry-run a tanzu cluster create e salvare l'output in un file. Utilizzare le stesse opzioni e lo stesso --file di configurazione che si utilizzerebbero se si stesse creando il cluster, ad esempio:

      tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
      

      È quindi possibile utilizzare questa specifica di oggetto per distribuire un cluster come descritto in Creazione di un cluster basato sulla classe dalla specifica di un oggetto.

  • Se si distribuisce un cluster del carico di lavoro basato sulla classe su vSphere 8 con supervisore, creare o adattare la specifica di un oggetto Cluster come descritto in Configurazione di un cluster basato sulla classe distribuito dal supervisore (solo vSphere 8). La documentazione di vSphere 8 include specifiche dell'oggetto Cluster di esempio da utilizzare a questo scopo, come Esempio v1beta1: cluster predefinito.

Configurazione delle impostazioni una tantum dell'infrastruttura (vSphere with Tanzu)

È possibile configurare le impostazioni dei cluster più comuni nella specifica dell'oggetto Cluster, ma alcuni componenti del cluster provengono dalla versione di Tanzu Kubernetes (TKr) su cui si basano i nodi del cluster. Ad esempio, TKr specifica le versioni di CNI, CSI e Pinniped utilizzate da un cluster.

Queste opzioni a livello di infrastruttura vengono applicate al momento della creazione del cluster dall'oggetto ClusterBootstrap e non possono essere modificate in un cluster in esecuzione. La procedura generale per configurare queste opzioni prima di creare un cluster è:

  1. Creare le specifiche di oggetto per l'oggetto ClusterBootstrap e tutti gli oggetti personalizzati a cui fa riferimento, ad esempio un oggetto CalicoConfig.

  2. Creare una specifica di oggetto per l'oggetto Cluster stesso.

  3. In metadata per tutte le specifiche di oggetto, includere il nome e lo spazio dei nomi per il cluster che si sta creando, ad esempio:

    apiVersion: run.tanzu.vmware.com/v1alpha3
    kind: ClusterBootstrap
    metadata:
      name: MY-CLUSTER
      namespace: MY-NAMESPACE
    

    La personalizzazione potrebbe richiedere metadati aggiuntivi, ad esempio annotazioni.

  4. Concatenare tutte le specifiche di oggetto, inclusa la definizione di Cluster, in un singolo file. Separare le specifiche con righe costituite da tre trattini (---).

  5. Passare la specifica di oggetto all'opzione --file di kubectl apply, ad esempio:

    kubectl config use-context CONTEXT-NAME
    
    kubectl apply -f my-custom-cluster-objects.yaml
    

Metodo alternativo: In alternativa agli ultimi due passaggi, è possibile eseguire kubectl apply -f in tutte le specifiche di oggetto, ad eccezione dell'oggetto Cluster e quindi eseguire tanzu cluster create --file con la specifica dell'oggetto Cluster.

Per un esempio specifico di questa procedura, vedere Creazione di un cluster con una CNI non predefinita, che imposta la CNI di un cluster su Calico.

Cluster del carico di lavoro, kubectl e kubeconfig

Tanzu Kubernetes Grid non imposta automaticamente il contesto kubectl per un cluster del carico di lavoro quando lo si crea. È necessario impostare manualmente il contesto kubectl per un cluster del carico di lavoro utilizzando il comando kubectl config use-context.

Per impostazione predefinita, a meno che non si specifichi l'opzione KUBECONFIG per salvare kubeconfig per un cluster in un file specifico, tutti i cluster del carico di lavoro distribuiti vengono aggiunti in un file .kube/config condiviso. Se si elimina il file .kube/config condiviso e si dispone comunque del file .kube-tkg/config per il cluster di gestione, è possibile ripristinare il file .kube/config dei cluster del carico di lavoro con il comando tanzu cluster kubeconfig get CLUSTER-NAME.

Non modificare il contesto e il file .kube-tkg/config o .kube/config mentre sono in esecuzione le operazioni di Tanzu Kubernetes Grid.

Passaggi successivi

Passare all'argomento di configurazione del cluster per l'infrastruttura:

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