Die Standarddatei kubeconfig in einem VMware vSphere with Tanzu Kubernetes-Cluster mit Gastzugriff enthält ein Token, das standardmäßig nach zehn Stunden abläuft und zu einer Warnmeldung führt. Um die Warnung zu vermeiden, arbeiten Sie mit Ihrem Kubernetes-Infrastrukturadministrator zusammen, um eine gültige Konfigurationsdatei für den TKG-Cluster in Supervisor mit einem nicht ablaufenden Token zu generieren, das Sie während der NSX Application Platform-Bereitstellung verwenden können.

Wenn das Token in der Standarddatei kubeconfig abläuft, wird auf der NSX Manager-Benutzeroberfläche für die NSX Application Platform die folgende Warnmeldung angezeigt.

Verbindung nicht möglich. Im System ist ein Konnektivitätsproblem aufgrund des Ablaufs der Kubernetes-Konfiguration aufgetreten. Aktualisieren Sie die Kubernetes-Konfiguration, um den Fehler zu beheben.

Die Warnung wirkt sich weder auf die Funktionalität der NSX Application Platform noch auf die derzeit aktivierten NSX-Sicherheitsfunktionen aus. Wenn Sie das Standard-Token jedoch zehn Stunden nach einer NSX Application Platform-Bereitstellung auf dem Tanzu-Kubernetes-Cluster mit Gastzugriff nicht ersetzen, müssen Sie bei jeder Durchführung der folgenden Vorgänge ein gültiges (nicht abgelaufenes) Token generieren:
  • Bereitstellen der NSX Application Platform
  • Aktualisieren der NSX Application Platform
  • Löschen der NSX Application Platform

Um eine Konfigurationsdatei für einen TKG-Cluster in Supervisor mit einem nicht ablaufenden Token zu generieren, das Sie während der NSX Application Platform-Bereitstellung verwenden können, wenden Sie sich mithilfe des folgenden Verfahrens an Ihren Kubernetes-Infrastrukturadministrator.

Prozedur

  1. Melden Sie sich mithilfe des folgenden Befehls beim vSphere with Tanzu Kubernetes-Cluster als Gast an.
    kubectl vsphere login --server <supervisor-cluster_ip> -u <user> --tanzu-kubernetes-cluster-name <tkg-cluster-name> --tanzu-kubernetes-cluster-namespace <namespace>
    Die Parameter lauten wie folgt:
    • <supervisor-cluster_ip> ist die Knotenadresse der Steuerungsebene, auf die Sie im vSphere Client über Arbeitslastverwaltung > Supervisor-Cluster zugreifen können.
    • <user> ist das Konto, das Administratorzugriff auf den TKG-Cluster in Supervisor hat.
    • <tkg-cluster-name> ist der Name des TKG-Clusters in Supervisor.
    • <namespace> ist der vSphere.Namespace, in dem sich dieser Cluster befindet.
    Beispiel:
    kubectl vsphere login --server 192.111.33.22 -u [email protected] --tanzu-kubernetes-cluster-name napp-tkg-cluster --tanzu-kubernetes-cluster-namespace napp
  2. Führen Sie jeden der folgenden Befehle separat aus, um ein Administratordienstkonto zu generieren und eine Clusterrollenbindung zu erstellen.
    kubectl create serviceaccount napp-admin -n kube-system
    
    kubectl create clusterrolebinding napp-admin --serviceaccount=kube-system:napp-admin --clusterrole=cluster-admin
  3. (Erforderlich) (Für Kubernetes Version 1.24 und höher) Erstellen Sie das Authentifizierungstoken für das Administratordienstkonto manuell. Verwenden Sie die folgenden Informationen.
    1. Erstellen Sie eine YAML-Datei mit einem Dienstkonto. Verwenden Sie den folgenden Inhalt für eine YAML-Beispieldatei mit dem Namen 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. Verwenden Sie den folgenden Befehl, um das Authentifizierungstoken mit einem Dienstkonto zu erstellen.
      kubectl apply -f <filename create above.yaml>
      Bei Verwendung der YAML-Beispieldatei im vorherigen Schritt lautet der zu verwendende Befehl wie folgt.
      kubectl apply -f napp-admin.yaml
      Das Authentifizierungstoken oder der geheime Schlüssel wird generiert.
  4. Um das Authentifizierungstoken für das Administratordienstkonto und die Zertifizierungsstelle des Clusters abzurufen, führen Sie die folgenden Befehle separat aus.
    Verwenden Sie für unterstützte Kubernetes-Version 1.24 und höher die folgenden Befehle.
    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
    Verwenden Sie für unterstützte Kubernetes-Versionen vor Version 1.24 die folgenden Befehle.
    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. Rufen Sie den TKG-Cluster der Supervisor-URL ab. Führen Sie die folgenden Befehle separat an der Eingabeaufforderung aus.
    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. Generieren Sie eine Konfigurationsdatei mit einem nicht ablaufenden Token für den TKG-Cluster in Supervisor.
    TO_BE_CREATED_KUBECONFIG_FILE="<file-name>"

    Der Parameter <file-name> ist der Name der Datei kubeconfig, die Sie versuchen zu erstellen.

    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. (Optional) Löschen Sie die Datei ca.crt. Dabei handelt es sich um eine temporäre Datei, die während der Generierung der neuen Datei kubeconfig erstellt wurde.
  8. Verwenden Sie die neu generierte Datei kubeconfig während der NSX Application Platform-Bereitstellung.