Usar SSH para conectarse a un nodo de clúster

En esta página, se describe cómo establecer una conexión SSH a un nodo del clúster de Google Distributed Cloud.

Esta página está destinada a administradores de TI y operadores que administran el ciclo de vida de la infraestructura tecnológica subyacente. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud, consulta Tareas y roles comunes de los usuarios de GKE Enterprise.

Antes de comenzar

Para completar estos pasos, necesitas la ubicación de los archivos kubeconfig del clúster de administrador y usuario. De forma predeterminada, estos archivos se almacenan en el directorio en el que creaste los clústeres de administrador y de usuario. Para obtener más información sobre kubeconfig, consulta Configura el acceso al clúster para kubectl en la documentación de GKE.

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

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.

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 cualquier comando, ten en cuenta el campo INTERNAL-IP. Estas son las direcciones IP del nodo. El campo NAME incluye el nombre del clúster de usuario con un ID único anexado. Por ejemplo, el nodo llamado my-user-cluster-12345678-abcdef es parte del clúster de usuario llamado my-user-cluster.

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 jsonpath='{.data.ssh\.key}' | base64 -d > \
~/.ssh/[USER_CLUSTER_NAME].key && chmod 600 ~/.ssh/[USER_CLUSTER_NAME].key

Donde:

  • [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. Debes especificar este nombre cuando creaste un 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.

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

ssh -i ~/.ssh/[USER_CLUSTER_NAME].key anthos@[USER_NODE_IP]

En el ejemplo anterior, [USER_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 jsonpath='{.data.vsphere_tmp}' | 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.

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

ssh -i ~/.ssh/admin-cluster.key anthos@[ADMIN_NODE_IP]

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