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
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 nombressh-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.
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
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 nombresshkeys
en el espacio de nombreskube-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.
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.