Se connecter aux clusters de charge de travail et les examiner

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.

Répertorier les clusters de charge de travail déployés

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é.
    • Aucun état : La création du cluster n’a pas encore démarré.

    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
    

    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.27.5+vmware.1 <none>      dev   v1.27.5---vmware.2-tkg.1
    workload-cluster-2     default     running        1/1           1/1      v1.27.5+vmware.1 <none>      dev   v1.27.5---vmware.2-tkg.1
    mgmt-cluster           tkg-system  running        1/1           1/1      v1.27.5+vmware.1 management  dev   v1.27.5---vmware.2-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 context use. Pour plus d'informations, reportez-vous à la section Répertorier les clusters de gestion et modifier le contexte.

Exporter les détails du cluster de charge de travail vers un fichier

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.

Exporter en tant que fichier JSON

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.27.5+vmware.1",
    "roles": [],
    "tkr": "v1.27.5---vmware.2-tkg.1",
    "labels": {
      "cluster.x-k8s.io/cluster-name": "workload-cluster-1",
      "run.tanzu.vmware.com/tkr": "v1.27.5---vmware.2-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.27.5+vmware.1",
    "roles": [],
    "tkr": "v1.27.5---vmware.2-tkg.1",
    "labels": {
      "tanzuKubernetesRelease": "v1.27.5---vmware.2-tkg.1",
      "tkg.tanzu.vmware.com/cluster-name": "workload-cluster-2"
    }
  }
]

Exporter en tant que fichier YAML

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.27.5+vmware.1
  roles: []
  tkr: v1.27.5---vmware.2-tkg.1
  labels:
    cluster.x-k8s.io/cluster-name: workload-cluster-1
    run.tanzu.vmware.com/tkr: v1.27.5---vmware.2-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.27.5+vmware.1
  roles: []
  tkr: v1.27.5---vmware.2-tkg.1
  labels:
    tanzuKubernetesRelease: v1.27.5---vmware.2-tkg.1
    tkg.tanzu.vmware.com/cluster-name: workload-cluster-1

Exporter les détails de plusieurs clusters

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.

Récupérer le cluster de charge de travail 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
Important

Si 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
Important

La 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.

Fichier kubeconfig admin

Pour 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'

Fichier kubeconfig standard

Si 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

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
Important

Par défaut, sauf si vous spécifiez l'option --export-file pour enregistrer le fichier kubeconfig 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.

Examiner le cluster déployé

Une fois que vous avez ajouté les informations d'identification à votre kubeconfig, vous pouvez vous connecter au cluster à l'aide de kubectl.

  1. Obtenir les contextes disponibles :

    kubectl config get-contexts
    
  2. Pointez kubectl vers votre cluster. Par exemple :

    kubectl config use-context my-cluster-admin@my-cluster
    
  3. 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.27.5+vmware.1
    my-dev-cluster-md-0-infra-n62lq-hq4k9      Ready    <none>          2d2h   v1.27.5+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.

  4. 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
    

Accéder à un cluster de charge de travail en tant qu'utilisateur standard (cluster de gestion autonome)

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.

Conditions requises

Pour effectuer cette tâche, assurez-vous de remplir les conditions suivantes :

  • Vous disposez d'une application Docker en cours d'exécution sur votre système. Si votre système exécute Microsoft Windows, définissez le mode Docker sur Linux et configurez le sous-système Windows pour Linux.
    • Sur une machine Linux, utilisez apt plutôt que snap pour installer Docker à partir d'une CLI.
  • Vous avez obtenu de l'administrateur du cluster les éléments suivants :
    • Détails des points de terminaison du cluster de gestion
    • Nom du cluster de charge de travail auquel vous prévoyez d'accéder
    • Fichier kubeconfig pour le cluster de charge de travail comme expliqué dans la section Récupérer le cluster de charge de travail kubeconfig

Accéder au cluster de charge de travail

  1. Dans la CLI Tanzu, exécutez la commande suivante :

    tanzu context create --endpoint https://MANAGEMENT-CLUSTER-CONTROL-PLANE-ENDPOINT:PORT --name SERVER-NAME
    

    Où :

    • Par défaut, le 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 :

    Page de connexion LDAPS

    OIDC :

    Page de connexion OIDC

  2. Connectez-vous au fournisseur de gestion des identités.

  3. Exécutez la commande suivante pour basculer vers le cluster de charge de travail :

    kubectl config use-context CONTEXT --kubeconfig="MY-KUBECONFIG"
    

    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 context use.

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