Se connecter à un nœud de cluster via SSH

Cette page explique comment obtenir un protocole SSH (Secure Shell) dans un nœud de cluster GKE On-Prem.

Présentation

Pour vous connecter en SSH à un nœud de cluster d'utilisateur ou d'administrateur, téléchargez une clé SSH à partir du plan de contrôle du cluster. Ensuite, vous utilisez la clé pour obtenir une interface système dans un nœud de cluster.

Après avoir téléchargé la clé SSH, envisagez de l'enregistrer dans un système de gestion de codes secrets/identifiants (par exemple, HashiCorp Vault). Si vous souhaitez vous connecter en SSH à un nœud de cluster à l'avenir et que le serveur d'API est en panne, vous avez besoin de la clé SSH enregistrée.

Obtenir les adresses IP de vos nœuds de cluster

Cluster d'utilisateur

Obtenez les adresses IP de vos nœuds de cluster utilisateur :

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

[USER_CLUSTER_KUBECONFIG] est le chemin d'accès au fichier kubeconfig de votre cluster utilisateur.

Cluster d'administrateur

Obtenez les adresses IP de vos nœuds de cluster d'administration :

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

[ADMIN_CLUSTER_KUBECONFIG] est le chemin d'accès au fichier kubeconfig de votre cluster d'administrateur.

Dans le résultat de la commande, notez le champ INTERNAL-IP. Il s'agit des adresses IP des nœuds.

Utiliser SSH pour se connecter à un nœud de cluster d'utilisateur

  1. Obtenez la clé SSH pour un cluster utilisateur :

    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
    

    où :

    • [ADMIN_CLUSTER_KUBECONFIG] est le chemin d'accès au fichier kubeconfig de votre cluster d'administrateur.

    • [USER_CLUSTER_NAME] est le nom de votre cluster d'utilisateur.

    La commande précédente effectue les étapes suivantes :

    • Depuis le cluster d'administrateur, récupérez le champ ssh.key d'un secret nommé ssh-keys dans l'espace de noms [USER_CLUSTER_NAME].

    • Base64 décode la clé.

    • Stockez la clé décodée dans le fichier ~/.ssh/[USER_CLUSTER_NAME].key.

    • Définissez les autorisations d'accès appropriées pour le fichier de clé.

  2. Utilisez la clé pour vous connecter en SSH à un nœud de cluster utilisateur :

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

    [NODE_IP] est l'adresse IP interne d'un nœud de votre cluster d'utilisateur, que vous avez recueillie précédemment.

Utiliser SSH pour se connecter à un nœud de cluster d'administrateur

  1. Obtenez la clé SSH pour le cluster d'administrateur :

    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
    

    [ADMIN_CLUSTER_KUBECONFIG] est le chemin d'accès au fichier kubeconfig du cluster d'administrateur.

    La commande précédente effectue les étapes suivantes :

    • Depuis le cluster d'administrateur, récupérez le champ vsphere_tmp d'un secret nommé sshkeys dans l'espace de noms kube-system.

    • Base64 décode le champ vsphere_tmp, qui est la clé.

    • Stockez la clé décodée dans le fichier ~/.ssh/admin-cluster.key.

    • Définir les autorisations d'accès appropriées pour le fichier de clé

  2. Utilisez la clé pour vous connecter en SSH à un nœud de cluster d'administrateur :

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

    [NODE_IP] est l'adresse IP interne d'un nœud du cluster d'administrateur, que vous avez recueillie précédemment.