Le fichier kubeconfig par défaut d'un cluster invité Kubernetes VMware vSphere with Tanzu contient un jeton qui expire par défaut au bout de dix heures et qui génère un message d'avertissement. Pour éviter l'avertissement, collaborez avec votre administrateur d'infrastructure Kubernetes pour générer un fichier de configuration de cluster TKG valide sur le superviseur avec un jeton sans date d'expiration que vous pouvez utiliser lors du déploiement de NSX Application Platform.

Lorsque le jeton dans le fichier kubeconfig par défaut expire, le message d'avertissement suivant s'affiche dans l'interface utilisateur de NSX Manager pour NSX Application Platform.

Impossible de se connecter, le système a rencontré un problème de connectivité en raison de l'expiration de la configuration Kubernetes. Mettez à jour la configuration Kubernetes pour résoudre.

L'avertissement n'a pas d'incidence sur la fonctionnalité du NSX Application Platform ni sur l'une des fonctionnalités de sécurité NSX actuellement activées. Cependant, si vous ne remplacez pas le jeton par défaut dix heures après un déploiement de NSX Application Platform sur le cluster invité Tanzu Kubernetes, vous devrez générer un jeton valide (non expiré) chaque fois que vous effectuerez les opérations suivantes :
  • Déployer la NSX Application Platform
  • Mettre à niveau NSX Application Platform
  • Supprimer NSX Application Platform

Pour générer un fichier de configuration du cluster TKG sur le superviseur avec un jeton sans date d'expiration que vous pouvez utiliser lors du déploiement de NSX Application Platform, collaborez avec votre administrateur d'infrastructure Kubernetes à l'aide de la procédure suivante.

Procédure

  1. Connectez-vous au cluster invité Kubernetes vSphere with Tanzu invité à l'aide de la commande suivante.
    kubectl vsphere login --server <supervisor-cluster_ip> -u <user> --tanzu-kubernetes-cluster-name <tkg-cluster-name> --tanzu-kubernetes-cluster-namespace <namespace>
    Les paramètres sont comme suit :
    • <supervisor-cluster_ip> est l'adresse du nœud du plan de contrôle qui est disponible dans le vSphere Client en sélectionnant Gestion de la charge de travail > Cluster superviseur.
    • <user> est le compte qui dispose d'un accès administrateur au cluster TKG sur le superviseur.
    • <tkg-cluster-name> est le nom du cluster TKG sur le superviseur.
    • <namespace> est l'espace de noms vSphere où réside ce cluster.
    Par exemple,
    kubectl vsphere login --server 192.111.33.22 -u [email protected] --tanzu-kubernetes-cluster-name napp-tkg-cluster --tanzu-kubernetes-cluster-namespace napp
  2. exécutez chacune des commandes suivantes séparément pour générer un compte de service d’administrateur et créer une liaison de rôle de cluster.
    kubectl create serviceaccount napp-admin -n kube-system
    
    kubectl create clusterrolebinding napp-admin --serviceaccount=kube-system:napp-admin --clusterrole=cluster-admin
  3. (Requis) (Pour Kubernetes version 1.24 et ultérieures) Créez manuellement le jeton d'authentification pour le compte de service d'administrateur. Utilisez les informations suivantes.
    1. Créez un fichier YAML avec un compte de service. Utilisez le contenu suivant pour obtenir un exemple de fichier YAML nommé, napp-admin.yaml.
      apiVersion: v1
      kind: Secret
      type: kubernetes.io/service-account-token
      metadata:
         name: napp-admin
         namespace: kube-system
         annotations:
            kubernetes.io/service-account.name: "napp-admin"
    2. Utilisez la commande suivante pour créer le jeton d'authentification avec un compte de service.
      kubectl apply -f <filename create above.yaml>
      En utilisant l'exemple de fichier YAML à l'étape précédente, la commande à utiliser est la suivante.
      kubectl apply -f napp-admin.yaml
      Le jeton d'authentification ou le secret est généré.
  4. Pour obtenir le jeton d'authentification pour le compte de service d'administrateur et l'autorité de certification du cluster, exécutez les commandes suivantes séparément.
    Pour Kubernetes version 1.24 et les versions ultérieures prises en charge, utilisez les commandes suivantes.
    SECRET=$(kubectl get secrets napp-admin -n kube-system -ojsonpath='{.metadata.name}')
    
    TOKEN=$(kubectl get secret $SECRET -n kube-system -ojsonpath='{.data.token}' | base64 -d)
    
    kubectl get secrets $SECRET -n kube-system -o jsonpath='{.data.ca\.crt}' | base64 -d > ./ca.crt
    Pour les versions de Kubernetes prises en charge antérieures à la version 1.24, utilisez les commandes suivantes.
    SECRET=$(kubectl get serviceaccount napp-admin -n kube-system -ojsonpath='{.secrets[].name}')
    
    TOKEN=$(kubectl get secret $SECRET -n kube-system -ojsonpath='{.data.token}' | base64 -d)
    
    kubectl get secrets $SECRET -n kube-system -o jsonpath='{.data.ca\.crt}' | base64 -d > ./ca.crt
  5. Obtenez le cluster TKG sur l'URL du superviseur. Exécutez les commandes suivantes séparément à l’invite de commande.
    CONTEXT=$(kubectl config view -o jsonpath='{.current-context}')
    
    CLUSTER=$(kubectl config view -o jsonpath='{.contexts[?(@.name == "'"$CONTEXT"'")].context.cluster}')
    
    URL=$(kubectl config view -o jsonpath='{.clusters[?(@.name == "'"$CLUSTER"'")].cluster.server}')
  6. Générez un fichier de configuration, avec un jeton sans date d'expiration, pour le cluster TKG sur le superviseur.
    TO_BE_CREATED_KUBECONFIG_FILE="<file-name>"

    Le paramètre <file-name> est le nom du fichier kubeconfig que vous essayez de créer.

    kubectl config --kubeconfig=$TO_BE_CREATED_KUBECONFIG_FILE set-cluster $CLUSTER --server=$URL --certificate-authority=./ca.crt --embed-certs=true
    
    kubectl config --kubeconfig=$TO_BE_CREATED_KUBECONFIG_FILE set-credentials napp-admin --token=$TOKEN 
    
    kubectl config --kubeconfig=$TO_BE_CREATED_KUBECONFIG_FILE set-context $CONTEXT --cluster=$CLUSTER --user=napp-admin
    
    kubectl config --kubeconfig=$TO_BE_CREATED_KUBECONFIG_FILE use-context $CONTEXT
  7. (Facultatif) Supprimez le fichier ca.crt, qui est un fichier temporaire créé lors de la génération du nouveau fichier kubeconfig.
  8. Utilisez le fichier kubeconfig récemment généré lors du déploiement de NSX Application Platform.