SSH-Verbindung zu einem Clusterknoten herstellen

Auf dieser Seite wird beschrieben, wie Sie Secure Shell (SSH) in einen GKE On-Prem-Clusterknoten einbinden.

Übersicht

Um eine SSH-Verbindung zu einem Nutzer- oder Administratorclusterknoten herzustellen, laden Sie einen SSH-Schlüssel von der Steuerungsebene des Clusters herunter. Anschließend verwenden Sie den Schlüssel, um eine Shell in einen Clusterknoten zu übertragen.

Nachdem Sie den SSH-Schlüssel heruntergeladen haben, sollten Sie ihn in einem Secrets-/Anmeldedatenverwaltungssystem (z. B. HashiCorp Vault) speichern. Wenn Sie in Zukunft eine SSH-Verbindung zu einem Clusterknoten herstellen möchten und der API-Server ausfällt, benötigen Sie den gespeicherten SSH-Schlüssel.

IP-Adressen der Clusterknoten abrufen

Nutzercluster

Rufen Sie die IP-Adressen der Nutzerclusterknoten ab:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get nodes --output wide

Dabei ist [USER_CLUSTER_KUBECONFIG] der Pfad der kubeconfig-Datei Ihres Nutzerclusters.

Administratorcluster

Rufen Sie die IP-Adressen Ihrer Administratorclusterknoten ab:

kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get nodes --output wide

Dabei ist [ADMIN_CLUSTER_KUBECONFIG] der Pfad der kubeconfig-Datei Ihres Administrator-Clusters.

Beachten Sie in der Befehlsausgabe das Feld INTERNAL-IP. Dies sind die Knoten-IP-Adressen.

SSH-Verbindung zu einem Clusterknoten herstellen

  1. Rufen Sie den SSH-Schlüssel für einen Nutzercluster ab:

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get secrets -n [USER_CLUSTER_NAME] ssh-keys -o yaml \
    | grep ssh.key: | awk '{ print $NF }' | base64 -d > \
    ~/.ssh/[USER_CLUSTER_NAME].key && chmod 600 ~/.ssh/[USER_CLUSTER_NAME].key
    

    Dabei gilt:

    • [ADMIN_CLUSTER_KUBECONFIG] ist der Pfad der kubeconfig-Datei Ihres Administratorclusters.

    • [USER_CLUSTER_NAME] ist der Name Ihres Nutzerclusters.

    Dieser Befehl führt die folgenden Schritte aus:

    • Rufen Sie im Administratorclusters das Feld ssh.key eines Secret namens ssh-keys im Namespace [USER_CLUSTER_NAME] ab.

    • Base64 decodiert den Schlüssel.

    • Speichern Sie den decodierten Schlüssel in der Datei ~/.ssh/[USER_CLUSTER_NAME].key.

    • Legen Sie die entsprechenden Zugriffsberechtigungen für die Schlüsseldatei fest.

  2. Verwenden Sie den Schlüssel, um eine SSH-Verbindung zu einem Nutzerclusterknoten herzustellen:

    ssh -i ~/.ssh/[USER_CLUSTER_NAME].key ubuntu@[NODE_IP]
    

    Dabei ist [NODE_IP] die interne IP-Adresse eines Knotens in Ihrem Nutzercluster, die Sie zuvor abgerufen haben.

SSH verwenden, um eine Verbindung zu einem Administrator-Clusterknoten herzustellen

  1. Den SSH-Schlüssel für den Administrator-Cluster abrufen:

    kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get secrets -n kube-system sshkeys -o yaml \
    | grep vsphere_tmp: | awk '{ print $NF }' | base64 -d > \
    ~/.ssh/admin-cluster.key && chmod 600 ~/.ssh/admin-cluster.key
    

    Dabei ist [ADMIN_CLUSTER_KUBECONFIG] der Pfad der kubeconfig-Datei des Administrator-Clusters.

    Dieser Befehl führt die folgenden Schritte aus:

    • Rufen Sie im Administratorclusters das Feld vsphere_tmp eines Secret namens sshkeys im Namespace kube-system.

    • Base64 decodiert das vsphere_tmp-Feld, das der Schlüssel ist.

    • Speichern Sie den decodierten Schlüssel in der Datei ~/.ssh/admin-cluster.key.

    • Legen Sie die entsprechenden Zugriffsberechtigungen für die Schlüsseldatei fest.

  2. Verwenden Sie den Schlüssel, um eine SSH-Verbindung zu einem Administratorclusterknoten herzustellen:

    ssh -i ~/.ssh/admin-cluster.key ubuntu@[NODE_IP]
    

    Dabei ist [NODE_IP] die interne IP-Adresse eines Knotens im Administrator-Cluster, die Sie zuvor abgerufen haben.