En esta página, se describe cómo establecer una conexión SSH a un nodo de clúster de GKE en VMware.
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 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 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 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 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.