Como usar o SSH para se conectar a um nó de cluster

10

Nesta página, descrevemos como realizar SSH em um cluster de nó dos clusters do Anthos no VMware (GKE On-Prem).

Antes de começar

Para concluir essas etapas, você precisará do local dos arquivos kubeconfig do usuário e do administrador. Por padrão, esses arquivos são armazenados no diretório em que você criou os clusters de administrador e usuário. Para mais informações sobre kubeconfig, consulte Como configurar o acesso ao cluster para a kubectl na documentação do GKE.

Como conseguir os endereços IP dos nós do cluster

Consiga os endereços IP dos seus nós de cluster de usuário:

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

em que [USER_CLUSTER_KUBECONFIG] é o caminho do arquivo kubeconfig do cluster de usuários.

Consiga os endereços IP dos nós do cluster de administrador:

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

em que [ADMIN_CLUSTER_KUBECONFIG] é o caminho do arquivo kubeconfig do cluster de administrador.

Para qualquer um dos comandos, anote o campo INTERNAL-IP. Esses são os endereços IP do nó. O campo NAME inclui o nome do cluster de usuário com um código exclusivo anexado. Por exemplo, o nó chamado my-user-cluster-12345678-abcdef faz parte do cluster do usuário chamado my-user-cluster.

Como usar SSH para se conectar a um nó de cluster de usuário

Consiga a chave SSH para um cluster de usuário:

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

onde:

  • [ADMIN_CLUSTER_KUBECONFIG] é o caminho do arquivo kubeconfig do cluster de administrador;

  • [USER_CLUSTER_NAME] pelo nome do cluster de usuário. Você especificou esse nome ao criar um cluster de usuários.

O comando anterior executa as seguintes etapas:

  • No cluster de administrador, consiga o campo ssh.key de um secret chamado ssh-keys no namespace [USER_CLUSTER_NAME].

  • Decodifique em Base64 a chave.

  • Armazene a chave decodificada no arquivo ~/.ssh/[USER_CLUSTER_NAME].key.

  • Defina as permissões de acesso apropriadas para o arquivo de chave.

Use a chave para executar o SSH em um nó de cluster do usuário:

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

em que [USER_NODE_IP] é o endereço IP interno de um nó no cluster de usuário, que você coletou anteriormente.

Como usar o SSH para se conectar a um nó de cluster de administrador

Consiga a chave SSH para o cluster 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

em que [ADMIN_CLUSTER_KUBECONFIG] é o caminho do arquivo kubeconfig do cluster de administrador.

O comando anterior executa as seguintes etapas:

  • No cluster de administração, consiga o campo vsphere_tmp de um secret chamado sshkeys no namespace kube-system.

  • Decodifique em Base64 o campo vsphere_tmp, que é a chave.

  • Armazene a chave decodificada no arquivo ~/.ssh/admin-cluster.key.

  • Defina as permissões de acesso apropriadas para o arquivo de chave.

Use a chave para executar o SSH em um nó de cluster de administrador:

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

em que [ADMIN_NODE_IP] é o endereço IP interno de um nó no cluster de administrador, que você coletou anteriormente.