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
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 namensssh-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.
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
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 namenssshkeys
im Namespacekube-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.
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.