Nesta página, descrevemos como colocar um shell seguro (SSH) em um nó de cluster do GKE On-Prem.
Visão geral
Para fazer o SSH em um nó de cluster de usuário ou administrador, fazer o download de uma chave SSH do plano de controle do cluster. Depois, você usará a chave para colocar um shell em um nó do cluster.
Depois de fazer o download da chave SSH, salve-a em um sistema de gerenciamento de chaves secrets/credenciais (como o HashiCorp Vault). Se você quiser usar SSH em um nó de cluster no futuro e o servidor da API estiver inativo, precisará da chave SSH salva.
Como conseguir os endereços IP dos nós do cluster
Cluster de usuários
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.
Cluster de administrador
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.
Na saída do comando, observe o campo INTERNAL-IP
. Esses são os endereços IP
do nó.
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 yaml \ | grep ssh.key: | awk '{ print $NF }' | 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] é o nome do cluster de usuário.
O comando anterior executa as seguintes etapas:
No cluster de administrador, consiga o campo
ssh.key
de um secret chamadossh-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 ubuntu@[NODE_IP]
em que [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 yaml \ | grep vsphere_tmp: | awk '{ print $NF }' | 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 chamadosshkeys
no namespacekube-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 ubuntu@[NODE_IP]
em que [NODE_IP] é o endereço IP interno de um nó no cluster de administrador, que você coletou anteriormente.