Utilizzo di un cluster di bootstrap esistente per distribuire ed eliminare cluster di gestione

Per impostazione predefinita, quando si distribuisce un cluster di gestione eseguendo tanzu mc create, Tanzu Kubernetes Grid crea un cluster kind temporaneo nella macchina di bootstrap locale. Utilizza quindi il cluster locale per eseguire il provisioning del cluster di gestione finale nell'infrastruttura cloud di destinazione, vSphere, Amazon Web Services (AWS) o Azure, ed elimina il cluster temporaneo dopo che il cluster di gestione è stato distribuito correttamente. L'esecuzione di tanzu mc delete per eliminare un cluster di gestione richiama un processo simile di creazione, utilizzo e rimozione di un cluster kind locale temporaneo.

In alcuni casi, potrebbe essere necessario mantenere il cluster locale dopo la distribuzione o l'eliminazione di un cluster di gestione. Ad esempio, per esaminare gli oggetti nel cluster o rivederne i registri. A tale scopo, è possibile distribuire o eliminare il cluster di gestione con le opzioni della CLI --use-existing-bootstrap-cluster e --use-existing-cleanup-cluster.

Con queste opzioni, Tanzu Kubernetes Grid ignora la creazione e l'eliminazione del cluster kind locale e utilizza invece un cluster locale preesistente di cui si dispone già o che viene creato per tale scopo.

Attenzione

L'utilizzo di un cluster di bootstrap esistente è un caso d'uso avanzato per gli utenti esperti di Kubernetes. Se possibile, è consigliabile utilizzare il cluster kind predefinito fornito da Tanzu Kubernetes Grid per il bootstrap dei cluster di gestione.

Identificazione o creazione di un cluster di bootstrap locale

Per conservare il cluster kind locale durante la creazione o l'eliminazione del cluster di gestione, è innanzitutto necessario che nella macchina di bootstrap sia in esecuzione un cluster compatibile. A tale scopo, identificare o creare il cluster, come descritto nelle sottosezioni seguenti.

Utilizzo di un cluster esistente

Per utilizzare un cluster locale esistente, è necessario assicurarsi che siano vere entrambe le condizioni seguenti:

  • Il cluster non è mai stato utilizzato in precedenza per eseguire il bootstrap o l'eliminazione di un cluster di gestione.

  • Il cluster è stato creato con kind v0.11 o versione successiva.

    • Controllare che queste condizioni siano soddisfatte eseguendo docker ps e associando la versione di kindest:node elencata alle versioni indicate nelle note di rilascio di kind.

    • Background: se la macchina di bootstrap utilizza un kernel Linux creato dopo la patch di sicurezza di maggio 2021 per Linux, ad esempio Linux 5.11 e 5.12 con Fedora, il cluster di bootstrap deve essere creato da un kind versione v0.11 o successiva. Le versioni precedenti di kind tentano di modificare un file che nelle versioni recenti di Linux è di sola lettura, causando un errore. Il fatto che la patch di sicurezza sia in corso di backporting in tutti i kernel LTS dalla versione 4.9 in poi può causare errori di distribuzione del cluster di gestione man mano che vengono rilasciati aggiornamenti del sistema operativo, inclusi quelli per la macchina Docker in Mac OS e per il sottosistema Windows per Linux.

Se entrambe queste condizioni sono vere per il cluster locale corrente, è possibile utilizzarlo per creare o eliminare un cluster di gestione. In caso contrario, è necessario sostituire il cluster nel modo seguente:

  1. Eliminare il cluster.

  2. Scaricare e installare una nuova versione di kind come descritto nella documentazione di kind.

  3. Creare un cluster kind come descritto nella sezione Creazione di un nuovo cluster seguente.

Creazione di un nuovo cluster

Per creare un nuovo cluster di bootstrap locale, eseguire una delle operazioni seguenti, in base alla connettività della macchina di bootstrap:

  • Ambiente completamente online:

    Creare il cluster:

    kind create cluster
    
  • Ambienti con limitazioni Internet:

    1. Creare un file di configurazione del cluster kind, ovvero kind.yml, come indicato di seguito:

      kind: Cluster
      apiVersion: kind.x-k8s.io/v1alpha4
      name: tkg-kind
      nodes:
      - role: control-plane
       # This option mounts the host docker registry folder into
       # the control-plane node, allowing containerd to access them.
       extraMounts:
         - containerPath: CONTAINER-CA-PATH
           hostPath: HOST-CA-PATH
      containerdConfigPatches:
      - |-
       [plugins."io.containerd.grpc.v1.cri".registry.configs."REGISTRY-FQDN".tls]
         ca_file = "/etc/containerd/REGISTRY-FQDN/CA.crt"
      

      In cui:

      • CONTAINER-CA-PATH è il percorso del certificato CA di Harbor nel container kind, ad esempio /etc/containerd/REGISTRY-FQDN
      • HOST-CA-PATH è il percorso del certificato CA di Harbor nella macchina virtuale di bootstrap in cui viene creato il cluster kind, ad esempio /etc/docker/certs.d/REGISTRY-FQDN
      • REGISTRY-FQDN è il nome del registro Harbor
      • CA.crt è il certificato CA del registro Harbor

      Poiché per impostazione predefinita crashd cerca un cluster denominato tkg-kind, se si assegna al cluster kind il nome tkg-kind, sarà più semplice raccogliere i registri se il bootstrap del cluster non viene eseguito correttamente.

    2. Utilizzare il file di configurazione indicato in precedenza per creare il cluster kind.

      kind create cluster --config kind.yml
      

Distribuzione di un cluster di gestione con un cluster di bootstrap esistente

Per distribuire un cluster di gestione Tanzu Kubernetes Grid con un cluster di bootstrap esistente:

  1. Eseguire la procedura indicata in precedenza per Identificare o creare un cluster di bootstrap locale.

  2. Impostare il contesto di kubectl sul cluster di bootstrap locale:

    kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
    
  3. Distribuire il cluster di gestione eseguendo il comando tanzu mc create con l'opzione --use-existing-bootstrap-cluster:

    tanzu mc create --file mc.yaml --use-existing-bootstrap-cluster my-bootstrap-cluster
    

    Per ulteriori informazioni sull'esecuzione di tanzu mc create, vedere Distribuzione dei cluster di gestione.

Eliminazione di un cluster di gestione con un cluster di bootstrap esistente

Per eliminare un cluster di gestione Tanzu Kubernetes Grid con un cluster di bootstrap esistente:

  1. Eseguire la procedura indicata in precedenza per Identificare o creare un cluster di bootstrap locale.

  2. Impostare il contesto di kubectl sul cluster di bootstrap locale:

    kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
    
  3. Eliminare il cluster di gestione eseguendo il comando tanzu mc delete con l'opzione --use-existing-cleanup-cluster:

    tanzu mc delete --use-existing-cleanup-cluster my-bootstrap-cluster
    

    Per ulteriori informazioni sull'esecuzione di tanzu mc delete, vedere Eliminazione dei cluster di gestione.

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