SSH no nó do GKE em um cluster privado

SSH no nó do GKE em um cluster privado

Criei um cluster privado no GKE e um NAT está configurado junto com o cluster. Também tenho uma configuração de bastião para acessar o cluster privado. Estou tentando fazer SSH em um dos nós e não consigo, pois os nós privados não possuem um IP externo. Existe alguma maneira de fazer isso?

Responder1

Você poderia usar o "gcloud"comando SSH em suas instâncias, presumindo que as regras de firewall do GCP estejam em vigor.

gcloud compute ssh example-instance --zone=us-central1-a

Responder2

A maneira como você faz o ssh em um nó do GKE não é diferente (AFAICT) do ssh em uma instância do GCE.

Existem basicamente duas maneiras (a menos que esteja faltando alguma coisa):

No primeiro casovocê adiciona USER:$(cat ~/.ssh/id_rsa.pub)metadados à instância (ou metadados do projeto se quiser ter acesso a todas as VMs do projeto):

$ gcloud compute instances add-metadata INSTANCE \
  --metadata="ssh-keys=me:`cat ~/.ssh/id_rsa.pub`" \
  --zone ZONE --project PROJECT_ID

adicione seu IP de origem às regras de firewall:

$ gcloud compute firewall-rules create allow-ssh \
  --source-ranges SOURCE_IP --allow tcp:22 \
  --project PROJECT_ID

e conecte-se ao nó:

$ ssh me@EXTERNAL_IP

Use gcloud compute instances list --project PROJECT_ID --filter name:NAMEpara aprender o IP externo.

Alternativamente, você pode se conectar com:

$ gcloud compute ssh [USER@]INSTANCE \
  --zone ZONE --project PROJECT_ID

Ele adicionará sua chave aos metadados do projeto automaticamente. Para fazê-lo, adicione-o block-project-ssh-keys = trueprimeiro ao conjunto de metadados da instância:

$ gcloud compute instances add-metadata INSTANCE \
  --metadata=block-project-ssh-keys=true \
  --zone ZONE --project PROJECT_ID

A forma de login do sistema operacional:

$ gcloud compute instances add-metadata INSTANCE \
  --metadata=enable-oslogin=true \
  --zone ZONE --project PROJECT_ID
$ gcloud compute ssh INSTANCE \
  --zone ZONE --project PROJECT_ID

No caso de um nó privadoo acima ainda é válido, mas além disso você precisa se conectar por meio de um servidor VPN em execução na sub-rede do nó,usar IAP, ouSSH no navegador(que usa IAP).

Você pode descobrir como iniciar uma instância de servidor VPN noseguindo a essência( vpn.tf, openvpn-server.sh).

No caso de IAP e SSH no navegador, você precisa adicionar acesso à porta 22 de 35.235.240.0/20:

$ gcloud compute firewall-rules create allow-ssh \
  --source-ranges 35.235.240.0/20 --allow tcp:22 \
  --project PROJECT_ID

e adicione --tunnel-through-iap:

$ gcloud compute ssh INSTANCE --tunnel-through-iap \
  --zone ZONE --project PROJECT_ID

Aquisão os resultados de eu tentar algumas dessas maneiras.

informação relacionada