Questa pagina descrive come ottenere un Secure Shell (SSH) in un nodo del cluster GKE On-Prem.
Panoramica
Per accedere tramite SSH a un nodo cluster utente o amministratore, devi scaricare una chiave SSH dal piano di controllo del cluster. Quindi, utilizzi la chiave per ottenere una shell in un nodo del cluster.
Dopo aver scaricato la chiave SSH, valuta la possibilità di salvare la chiave SSH in un sistema di gestione dei secret/credenziali (ad esempio HashiCorp Vault). Se in futuro vuoi connetterti a un nodo del cluster tramite SSH e il server API non è attivo, ti servirà la chiave SSH salvata.
Recupero degli indirizzi IP dei nodi del cluster
Cluster utente
Recupera gli indirizzi IP dei nodi del cluster utente:
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get nodes --output wide
dove [USER_CLUSTER_KUBECONFIG] è il percorso del file kubeconfig del cluster utente.
Cluster di amministrazione
Recupera gli indirizzi IP dei nodi del cluster di amministrazione:
kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get nodes --output wide
dove [ADMIN_CLUSTER_KUBECONFIG] è il percorso del tuo file kubeconfig del cluster di amministrazione.
Nell'output dei comandi, prendi nota del campo INTERNAL-IP
. Questi sono gli indirizzi IP
dei nodi.
Utilizzo di SSH per la connessione a un nodo cluster utente
Ottieni la chiave SSH per un cluster utente:
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
dove:
[ADMIN_CLUSTER_KUBECONFIG] è il percorso del file kubeconfig del cluster di amministrazione.
[USER_CLUSTER_NAME] è il nome del cluster utente.
Il comando precedente esegue questa procedura:
Dal cluster di amministrazione, recupera il campo
ssh.key
di un Secret denominatossh-keys
nello spazio dei nomi [USER_CLUSTER_NAME].Decodifica base64 della chiave.
Archivia la chiave decodificata nel file
~/.ssh/[USER_CLUSTER_NAME].key
.Imposta le autorizzazioni di accesso appropriate per il file della chiave.
Utilizza la chiave per connetterti a un nodo del cluster utente: SSH:
ssh -i ~/.ssh/[USER_CLUSTER_NAME].key ubuntu@[NODE_IP]
dove [NODE_IP] è l'indirizzo IP interno di un nodo nel cluster utente, che hai raccolto in precedenza.
Utilizzo di SSH per la connessione a un nodo del cluster di amministrazione
Ottieni la chiave SSH per il cluster di amministrazione:
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
dove [ADMIN_CLUSTER_KUBECONFIG] è il percorso del file del kubeconfig del cluster di amministrazione.
Il comando precedente esegue questa procedura:
Dal cluster di amministrazione, recupera il campo
vsphere_tmp
di un Secret denominatosshkeys
nello spazio dei nomikube-system
.Base64 decodifica il campo
vsphere_tmp
, che è la chiave.Archivia la chiave decodificata nel file
~/.ssh/admin-cluster.key
.Imposta le autorizzazioni di accesso appropriate per il file della chiave.
Utilizza la chiave per connetterti a un nodo del cluster di amministrazione tramite SSH:
ssh -i ~/.ssh/admin-cluster.key ubuntu@[NODE_IP]
dove [NODE_IP] è l'indirizzo IP interno di un nodo nel cluster di amministrazione, che hai raccolto in precedenza.