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.
AttenzioneL'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.
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.
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:
Eliminare il cluster.
Scaricare e installare una nuova versione di kind
come descritto nella documentazione di kind.
Creare un cluster kind
come descritto nella sezione Creazione di un nuovo cluster seguente.
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:
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 HarborCA.crt
è il certificato CA del registro HarborPoiché 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.
Utilizzare il file di configurazione indicato in precedenza per creare il cluster kind
.
kind create cluster --config kind.yml
Per distribuire un cluster di gestione Tanzu Kubernetes Grid con un cluster di bootstrap esistente:
Eseguire la procedura indicata in precedenza per Identificare o creare un cluster di bootstrap locale.
Impostare il contesto di kubectl
sul cluster di bootstrap locale:
kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
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.
Per eliminare un cluster di gestione Tanzu Kubernetes Grid con un cluster di bootstrap esistente:
Eseguire la procedura indicata in precedenza per Identificare o creare un cluster di bootstrap locale.
Impostare il contesto di kubectl
sul cluster di bootstrap locale:
kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
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.