Une fois que vous avez déployé des clusters de charge de travail, vous utilisez les commandes tanzu cluster list
et tanzu cluster kubeconfig get
pour obtenir la liste des clusters en cours d'exécution et leurs informations d'identification. Ensuite, vous pouvez vous connecter aux clusters à l'aide de kubectl
et commencer à travailler avec vos clusters.
Pour répertorier vos clusters de charge de travail et le cluster de gestion qui les gère, utilisez la commande tanzu cluster list
.
Pour répertorier tous les clusters de charge de travail qui s'exécutent dans l'espace de noms default
du cluster de gestion, exécutez la commande tanzu cluster list
:
tanzu cluster list
La sortie répertorie tous les clusters de charge de travail de l'espace de noms de noms par défaut, y compris les noms des clusters, leur état actuel, le nombre de nœuds de plans de contrôle et worker réels et demandés, ainsi que la version de Kubernetes que le cluster exécute.
Les clusters peuvent être dans les états suivants :
creating
: Le plan de contrôle est en cours de création.createStalled
: Le processus de création du plan de contrôle s’est bloqué.deleting
: Le cluster est en cours de suppression.failed
: La création du plan de contrôle a échoué.running
: Le plan de contrôle a été initialisé entièrement.updating
: Un déploiement de mise à jour ou une mise à l'échelle de nœuds est en cours dans le cluster.updateFailed
: Le processus de mise à jour du cluster a échoué.updateStalled
: Le processus de mise à jour du cluster est bloqué.Si un cluster est dans un état bloqué, vérifiez qu'il existe une connectivité réseau au registre externe, que les ressources sur la plate-forme cible sont suffisantes pour pourvoir exécuter l'opération et que DHCP émet correctement des adresses IPv4.
Pour répertorier les clusters dans tous les espaces de noms auxquels vous avez accès, spécifiez l'option -A
ou --all-namespaces
.
tanzu cluster list --all-namespaces
Pour répertorier uniquement les clusters qui s'exécutent dans un espace de noms donné, spécifiez l'option --namespace
.
tanzu cluster list --namespace=NAMESPACE
Où NAMESPACE
est l'espace de noms dans lequel les clusters s'exécutent.
Sur vSphere with Tanzu, les ingénieurs DevOps doivent inclure une valeur --namespace
lorsqu'ils exécutent tanzu cluster list
, pour spécifier un espace de noms auquel ils peuvent accéder. Reportez-vous à la section Rôles d'utilisateur et workflows de vSphere with Tanzu dans la documentation de VMware vSphere.
Si vous êtes connecté à un cluster de gestion autonome, pour inclure le cluster de gestion autonome actuel dans la sortie de tanzu cluster list
, spécifiez les options --include-management-cluster -A
.
tanzu cluster list --include-management-cluster -A
Vous pouvez voir que le cluster de gestion est en cours d'exécution dans l'espace de noms tkg-system
et qu'il dispose du rôle management
.
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN TKR
workload-cluster-1 default running 1/1 1/1 v1.25.7+vmware.1 <none> dev v1.25.7---vmware.1-tkg.1
workload-cluster-2 default running 1/1 1/1 v1.25.7+vmware.1 <none> dev v1.25.7---vmware.1-tkg.1
mgmt-cluster tkg-system running 1/1 1/1 v1.25.7+vmware.1 management dev v1.25.7---vmware.1-tkg.1
Pour afficher tous les clusters de gestion et modifier le contexte de la CLI Tanzu sur un cluster de gestion différent, exécutez la commande tanzu login
. Pour plus d'informations, reportez-vous à la section Répertorier les clusters de gestion et modifier le contexte.
Vous pouvez exporter les détails des clusters auxquels vous avez accès au format JSON ou YAML. Vous pouvez enregistrer le fichier JSON ou YAML dans un fichier afin de pouvoir l'utiliser dans des scripts pour exécuter des opérations en bloc sur des clusters.
Pour exporter les détails du cluster au format JSON, exécutez tanzu cluster list
avec l'option --output
, en spécifiant json
:
tanzu cluster list --output json > clusters.json
La sortie affiche les informations sur le cluster au format JSON :
[
{
"name": "workload-cluster-1",
"namespace": "default",
"status": "running",
"plan": "dev",
"controlplane": "1/1",
"workers": "1/1",
"kubernetes": "v1.25.7+vmware.1",
"roles": [],
"tkr": "v1.25.7---vmware.1-tkg.1",
"labels": {
"cluster.x-k8s.io/cluster-name": "workload-cluster-1",
"run.tanzu.vmware.com/tkr": "v1.25.7---vmware.1-tkg.1",
"tkg.tanzu.vmware.com/cluster-name": "workload-cluster-1",
"topology.cluster.x-k8s.io/owned": ""
}
},
{
"name": "workload-cluster-2",
"namespace": "default",
"status": "running",
"plan": "dev",
"controlplane": "1/1",
"workers": "1/1",
"kubernetes": "v1.25.7+vmware.1",
"roles": [],
"tkr": "v1.25.7---vmware.1-tkg.1",
"labels": {
"tanzuKubernetesRelease": "v1.25.7---vmware.1-tkg.1",
"tkg.tanzu.vmware.com/cluster-name": "workload-cluster-2"
}
}
]
Pour exporter les détails du cluster au format YAML, exécutez tanzu cluster list
avec l'option --output
, en spécifiant yaml
:
tanzu cluster list --output yaml > clusters.yaml
La sortie affiche les informations sur le cluster au format YAML :
- name: workload-cluster-1
namespace: default
status: running
plan: dev
controlplane: 1/1
workers: 1/1
kubernetes: v1.25.7+vmware.1
roles: []
tkr: v1.25.7---vmware.1-tkg.1
labels:
cluster.x-k8s.io/cluster-name: workload-cluster-1
run.tanzu.vmware.com/tkr: v1.25.7---vmware.1-tkg.1
tkg.tanzu.vmware.com/cluster-name: workload-cluster-1
topology.cluster.x-k8s.io/owned: ""
- name: workload-cluster-1
namespace: default
status: running
plan: dev
controlplane: 1/1
workers: 1/1
kubernetes: v1.25.7+vmware.1
roles: []
tkr: v1.25.7---vmware.1-tkg.1
labels:
tanzuKubernetesRelease: v1.25.7---vmware.1-tkg.1
tkg.tanzu.vmware.com/cluster-name: workload-cluster-1
Pour plus d'informations sur l'enregistrement des détails de plusieurs clusters de gestion, notamment leur contexte et leurs fichiers kubeconfig
, reportez-vous à la section Gestion de vos clusters de gestion.
kubeconfig
Après avoir créé un cluster de charge de travail, vous pouvez obtenir son contexte et ses paramètres kubeconfig
en exécutant la commande tanzu cluster kubeconfig get
, en spécifiant le nom du cluster. Par défaut, la commande ajoute les paramètres kubeconfig
du cluster à votre fichier kubeconfig
actuel.
tanzu cluster kubeconfig get my-cluster
ImportantSi la gestion des identités n'est pas configurée sur le cluster, vous devez spécifier l'option
--admin
.
Pour exporter kubeconfig
dans un fichier, spécifiez l'option --export-file
.
tanzu cluster kubeconfig get my-cluster --export-file my-cluster-kubeconfig
ImportantLa suppression de votre fichier
kubeconfig
vous empêchera d'accéder à tous les clusters que vous avez déployés à partir de la CLI Tanzu.
Si la gestion des identités et le contrôle d'accès basé sur les rôles (RBAC) sont configurés sur le cluster, les utilisateurs disposant d'informations d'identification standard, non-admin kubeconfig
, devront s'authentifier auprès d'un fournisseur d'identité externe afin de se connecter au cluster.
kubeconfig
adminPour générer un fichier kubeconfig
admin autonome avec des informations d'identification intégrées, ajoutez l'option --admin
. Ce fichier kubeconfig
accorde à son utilisateur un accès complet aux ressources du cluster et lui permet d'accéder au cluster sans se connecter à un fournisseur d'identité.
tanzu cluster kubeconfig get my-cluster --admin
Vous devez voir la sortie suivante :
You can now access the cluster by running 'kubectl config use-context my-cluster-admin@my-cluster'
kubeconfig
standardSi la gestion des identités est configurée sur le cluster cible, vous pouvez générer un fichier kubeconfig
non admin qui nécessite que l'utilisateur s'authentifie auprès de votre fournisseur d'identité externe et lui accorde l'accès aux ressources du cluster en fonction de ses rôles attribués. Dans ce cas, exécutez tanzu cluster kubeconfig get
sans l'option --admin
.
tanzu cluster kubeconfig get CLUSTER-NAME --namespace=NAMESPACE
Où CLUSTER-NAME
et NAMESPACE
est le cluster et l'espace de noms que vous ciblez.
Vous devez voir la sortie suivante :
You can now access the cluster by running 'kubectl config use-context ...'
Pour enregistrer les informations de configuration dans un fichier autonome kubeconfig
, par exemple pour les distribuer aux développeurs, spécifiez l'option --export-file
. Ce fichier kubeconfig
nécessite que l'utilisateur s'authentifie auprès d'un fournisseur d'identité externe et accorde l'accès aux ressources du cluster en fonction des rôles qui lui sont attribués.
tanzu cluster kubeconfig get CLUSTER-NAME --namespace=NAMESPACE --export-file PATH-TO-FILE
ImportantPar défaut, sauf si vous spécifiez l'option
--export-file
pour enregistrer le fichierkubeconfig
pour un cluster dans un fichier spécifique, les informations d'identification de tous les clusters que vous déployez à partir de la CLI Tanzu sont ajoutées à un fichier partagékubeconfig
. Si vous supprimez le fichier partagékubeconfig
, tous les clusters deviennent inutilisables.
Une fois que vous avez ajouté les informations d'identification à votre kubeconfig
, vous pouvez vous connecter au cluster à l'aide de kubectl
.
Obtenir les contextes disponibles :
kubectl config get-contexts
Pointez kubectl
vers votre cluster. Par exemple :
kubectl config use-context my-cluster-admin@my-cluster
Utilisez kubectl
pour voir l'état des nœuds du cluster :
kubectl get nodes
Par exemple, si vous avez déployé my-dev-cluster
avec le plan dev
, la sortie suivante s'affiche.
NAME STATUS ROLES AGE VERSION
my-dev-cluster-control-plane-9qx88-p88cp Ready control-plane 2d2h v1.25.7+vmware.1
my-dev-cluster-md-0-infra-n62lq-hq4k9 Ready <none> 2d2h v1.25.7+vmware.1
Étant donné que la mise en réseau avec Antrea est activée par défaut dans les clusters de charge de travail, tous les clusters sont dans l'état Ready
sans nécessiter de configuration supplémentaire.
Utilisez kubectl
pour voir l'état des espaces en cours d'exécution dans le cluster :
kubectl get pods -A
L'exemple suivant montre les espaces s'exécutant dans l'espace de noms kube-system
dans le cluster my-dev-cluster
sur Azure.
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system antrea-agent-ck7lv 2/2 Running 4 (3h7m ago) 2d2h
kube-system antrea-agent-fpq79 2/2 Running 4 (3h7m ago) 2d2h
kube-system antrea-controller-66d7978fd7-nkzgb 1/1 Running 4 (3h7m ago) 2d2h
kube-system coredns-77d74f6759-b68ht 1/1 Running 2 (3h7m ago) 2d2h
kube-system coredns-77d74f6759-qfp8b 1/1 Running 2 (3h7m ago) 2d2h
kube-system csi-azuredisk-controller-5957dc576c-42tsd 6/6 Running 12 (3h7m ago) 2d2h
kube-system csi-azuredisk-node-5hmkw 3/3 Running 6 (3h7m ago) 2d2h
kube-system csi-azuredisk-node-k7fr7 3/3 Running 6 (3h7m ago) 2d2h
kube-system csi-azurefile-controller-5d48b98756-rmrxp 5/5 Running 10 (3h7m ago) 2d2h
kube-system csi-azurefile-node-brnf2 3/3 Running 6 (3h7m ago) 2d2h
kube-system csi-azurefile-node-vqghv 3/3 Running 6 (3h7m ago) 2d2h
kube-system csi-snapshot-controller-7ffbf75bd9-5m64r 1/1 Running 2 (3h7m ago) 2d2h
kube-system etcd-my-dev-cluster-control-plane-9qx88-p88cp 1/1 Running 2 (3h7m ago) 2d2h
kube-system kube-apiserver-my-dev-cluster-control-plane-9qx88-p88cp 1/1 Running 2 (3h7m ago) 2d2h
kube-system kube-controller-manager-my-dev-cluster-control-plane-9qx88-p88cp 1/1 Running 2 (3h7m ago) 2d2h
kube-system kube-proxy-hqhfx 1/1 Running 2 (3h7m ago) 2d2h
kube-system kube-proxy-s6wwf 1/1 Running 2 (3h7m ago) 2d2h
kube-system kube-scheduler-my-dev-cluster-control-plane-9qx88-p88cp 1/1 Running 2 (3h7m ago) 2d2h
kube-system metrics-server-545546cdfd-qhbxc 1/1 Running 2 (3h7m ago) 2d2h
secretgen-controller secretgen-controller-7b7cbc6d9d-p6qww 1/1 Running 2 (3h7m ago) 2d2h
tkg-system kapp-controller-868f9469c5-j58pn 2/2 Running 5 (3h7m ago) 2d2h
tkg-system tanzu-capabilities-controller-manager-b46dcfc7f-7dzd9 1/1 Running 4 (3h7m ago) 2d2h
Cette section décrit comment un utilisateur standard non-administrateur peut se connecter à un cluster de charge de travail déployé par un cluster de gestion autonome. Ce workflow diffère de la manière dont un administrateur de cluster qui a créé le cluster de gestion du cluster peut accéder au cluster de charge de travail.
Pour effectuer cette tâche, assurez-vous de remplir les conditions suivantes :
apt
plutôt que snap
pour installer Docker à partir d'une CLI.kubeconfig
pour le cluster de charge de travail comme expliqué dans la section Récupérer le cluster de charge de travail kubeconfig
Dans la CLI Tanzu, exécutez la commande suivante :
tanzu login --endpoint https://MANAGEMENT-CLUSTER-CONTROL-PLANE-ENDPOINT:PORT --name SERVER-NAME
Où :
PORT
est 6443
. Si l'administrateur du cluster définit CLUSTER_API_SERVER_PORT
ou VSPHERE_CONTROL_PLANE_ENDPOINT_PORT
lors du déploiement du cluster, utilisez le numéro de port défini dans la variable.SERVER-NAME
est le nom de votre serveur de cluster de gestion.Si la gestion des identités est configurée sur le cluster de gestion, l'écran de connexion du fournisseur de gestion des identités (LDAP ou OIDC) s'ouvre dans votre navigateur par défaut.
LDAPS :
OIDC :
Connectez-vous au fournisseur de gestion des identités.
Exécutez la commande suivante pour basculer vers le cluster de charge de travail :
kubectl config use-context CONTEXT --kubeconfig="MY-KUBECONFIG"
Où CONTEXT
et MY-KUBECONFIG
sont le contexte du cluster et le fichier kubeconfig
obtenus auprès de l'administrateur du cluster.
Pour les connexions suivantes à la CLI Tanzu, vous verrez une option permettant de choisir votre environnement Tanzu Kubernetes Grid dans une liste qui s'affiche après avoir entré tanzu login
.