Utiliza SSH para conectarte a un nodo de clúster

En esta página, se describe cómo obtener un Secure Shell (SSH) en un nodo del clúster de GKE On-Prem.

Descripción general

Para establecer una conexión SSH a un nodo de clúster de usuario o administrador, descarga una clave SSH desde el plano de control del clúster. Luego, usa la clave para incorporar una shell en un nodo del clúster.

Después de descargar la clave SSH, considera guardarla en un sistema de administración de credenciales o secretos (como HashiCorp Vault). Si deseas establecer una conexión SSH a un nodo del clúster en el futuro y el servidor de la API está inactivo, necesitarás la clave SSH guardada.

Obtén las direcciones IP de los nodos de tu clúster

Clúster de usuario

Obtén las direcciones IP de los nodos del clúster de usuario:

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

En el comando anterior, [USER_CLUSTER_KUBECONFIG] es la ruta de acceso del archivo kubeconfig del clúster de usuario.

Clúster de administrador

Obtén las direcciones IP de los nodos del clúster de administrador:

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

En el comando anterior, [ADMIN_CLUSTER_KUBECONFIG] es la ruta del archivo kubeconfig del clúster de administrador.

En el resultado del comando, ten en cuenta el campo INTERNAL-IP. Estas son las direcciones IP del nodo.

Usa SSH para conectarte a un nodo del clúster de usuario

  1. Obtén la llave SSH para un clúster de usuario:

    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
    

    En el ejemplo anterior, se ilustra lo siguiente:

    • [ADMIN_CLUSTER_KUBECONFIG] es la ruta del archivo kubeconfig del clúster de administrador.

    • [USER_CLUSTER_NAME] es el nombre del clúster de usuario.

    El código anterior realiza las siguientes acciones:

    • En el clúster de administrador, obtén el campo ssh.key de un secreto con el nombre ssh-keys en el espacio de nombres [USER_CLUSTER_NAME].

    • Decodifica la clave en base64.

    • Almacena la clave decodificada en el archivo ~/.ssh/[USER_CLUSTER_NAME].key.

    • Configura los permisos de acceso adecuados para el archivo de claves.

  2. Usa la clave para establecer una conexión SSH a un nodo del clúster de usuario:

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

    En el ejemplo anterior, [NODE_IP] es la dirección IP interna de un nodo en tu clúster de usuario, que recopilaste antes.

Usa SSH para conectarse a un nodo del clúster de administrador

  1. Obtén la llave SSH para el clúster de administrador:

    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
    

    En el comando anterior, [ADMIN_CLUSTER_KUBECONFIG] es la ruta del archivo kubeconfig del clúster del administrador.

    El código anterior realiza las siguientes acciones:

    • En el clúster de administrador, obtén el campo vsphere_tmp de un secreto con el nombre sshkeys en el espacio de nombres kube-system.

    • Decodifica en base64 el campo vsphere_tmp, que es la clave.

    • Almacena la clave decodificada en el archivo ~/.ssh/admin-cluster.key.

    • Configura los permisos de acceso adecuados para el archivo de claves.

  2. Usa la clave para establecer una conexión SSH a un nodo del clúster de administrador:

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

    En el ejemplo anterior, [NODE_IP] es la dirección IP interna de un nodo en el clúster de administrador, que recopilaste antes.