Par défaut, lorsque vous déployez un cluster de gestion en exécutant tanzu mc create
, Tanzu Kubernetes Grid crée un cluster temporaire kind
sur votre machine de démarrage locale. Il utilise ensuite le cluster local pour provisionner le cluster de gestion final sur son infrastructure de cloud cible (vSphere, Amazon Web Services (AWS) ou Azure), et supprime le cluster temporaire une fois le cluster de gestion déployé. L'exécution de tanzu mc delete
pour supprimer un cluster de gestion appelle un processus similaire de création, d'utilisation, puis de suppression d'un cluster temporaire kind
local.
Dans certaines circonstances, vous pouvez conserver le cluster local après le déploiement ou la suppression d’un cluster de gestion. Par exemple, pour examiner les objets du cluster ou consulter ses journaux. Pour ce faire, vous pouvez déployer ou supprimer le cluster de gestion avec l'option de CLI --use-existing-bootstrap-cluster
ou --use-existing-cleanup-cluster
.
Avec ces options, Tanzu Kubernetes Grid ignore la création et la suppression du cluster kind
local et utilise plutôt un cluster local préexistant que vous possédez déjà ou que vous créez à cet effet.
Attention :L'utilisation d'un cluster de démarrage existant est un cas d'utilisation avancé destiné aux utilisateurs Kubernetes expérimentés. Il est vivement recommandé, si possible, d'utiliser le cluster par défaut
kind
que Tanzu Kubernetes Grid fournit pour démarrer vos clusters de gestion.
Pour conserver votre cluster kind
local lors de la création ou de la suppression du cluster de gestion, vous devez d'abord disposer d'un cluster compatible en cours d'exécution sur votre machine de démarrage. Pour ce faire, identifiez ou créez le cluster, comme décrit dans les sous-sections ci-dessous.
Pour utiliser un cluster local existant, vous devez vous assurer que les deux éléments suivants sont vrais :
Le cluster n’a jamais été utilisé auparavant pour démarrer ou supprimer un cluster de gestion.
Le cluster a été créé avec kind
v0.11 ou version ultérieure.
Pour vérifier cela, exécutez docker ps
et associez la version de kindest:node
répertoriée avec les versions répertoriées dans les notes de mise à jour de kind
.
Arrière-plan : si votre machine de démarrage utilise un noyau Linux intégré après le correctif de sécurité Linux de mai 2021, par exemple Linux 5.11 et 5.12 avec Fedora, votre cluster de démarrage doit être créé par une version de kind
v0.11 ou ultérieure. Les versions antérieures de kind
tentent de modifier un fichier en lecture seule dans les versions récentes de Linux, ce qui entraîne un échec. Le correctif de sécurité est rétroporté sur tous les noyaux LTS à partir de la version 4.9, ce qui entraîne d'éventuels échecs de déploiement du cluster de gestion, car des mises à jour du système d'exploitation sont fournies, y compris pour la machine Docker sur macOS et Windows Subsystem for Linux.
Si ces deux qualifications sont vraies pour le cluster local actuel, vous pouvez l'utiliser pour créer ou supprimer un cluster de gestion. Sinon, vous devez remplacer le cluster comme suit :
Supprimez le cluster.
Téléchargez et installez une nouvelle version de kind
comme décrit dans la documentation de kind.
Créez un cluster kind
comme décrit dans la section Créer un cluster ci-dessous.
Pour créer un cluster de démarrage local, procédez de l'une des manières suivantes, en fonction de la connectivité de votre machine de démarrage :
Environnement entièrement en ligne :
Créez le cluster :
kind create cluster
Environnements à accès restreint à Internet :
Créez un fichier de configuration de cluster kind
kind.yml
comme suit :
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"
Où :
CONTAINER-CA-PATH
est le chemin d'accès du certificat d'autorité de certification Harbor sur le conteneur kind
, tel que /etc/containerd/REGISTRY-FQDN
HOST-CA-PATH
est le chemin d'accès au certificat d'autorité de certification Harbor sur la machine virtuelle de démarrage sur laquelle le cluster kind
est créé, comme /etc/docker/certs.d/REGISTRY-FQDN
REGISTRY-FQDN
est le nom du registre HarborCA.crt
est le certificat d'autorité de certification du registre HarborPar défaut, crashd
recherche un cluster nommé tkg-kind
. Par conséquent, nommer le cluster kind
tkg-kind
facilite la collecte des journaux si le cluster ne parvient pas à démarrer.
Utilisez le fichier de configuration ci-dessus pour créer le cluster kind
.
kind create cluster --config kind.yml
Pour déployer un cluster de gestion Tanzu Kubernetes Grid avec un cluster de démarrage existant :
Suivez la procédure ci-dessus pour Identifier ou créer un cluster de démarrage local.
Définissez le contexte de kubectl
sur le cluster de démarrage local :
kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
Déployez le cluster de gestion en exécutant la commande tanzu mc create
avec l'option --use-existing-bootstrap-cluster
:
tanzu mc create --file mc.yaml --use-existing-bootstrap-cluster my-bootstrap-cluster
Pour plus d'informations sur l'exécution de tanzu mc create
, reportez-vous à la section Déployer des clusters de gestion.
Pour supprimer un cluster de gestion Tanzu Kubernetes Grid avec un cluster de démarrage existant :
Suivez la procédure ci-dessus pour Identifier ou créer un cluster de démarrage local.
Définissez le contexte de kubectl
sur le cluster de démarrage local :
kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
Supprimez le cluster de gestion en exécutant la commande tanzu mc delete
avec l'option --use-existing-cleanup-cluster
:
tanzu mc delete --use-existing-cleanup-cluster my-bootstrap-cluster
Pour plus d'informations sur l'exécution de tanzu mc delete
, reportez-vous à la section Supprimer des clusters de gestion.