비공개 클러스터의 GKE 노드에 SSH를 통해 연결

비공개 클러스터의 GKE 노드에 SSH를 통해 연결

GKE에 비공개 클러스터를 만들었고 NAT가 클러스터와 함께 구성되었습니다. 또한 개인 클러스터에 액세스하기 위한 요새 설정도 있습니다. 노드 중 하나에 SSH로 연결하려고 하는데 개인 노드에 외부 IP가 없기 때문에 그렇게 할 수 없습니다. 제가 할 수 있는 방법이 있나요?

답변1

"를 사용할 수 있습니다.지클라우드" GCP 방화벽 규칙이 있다고 가정하고 인스턴스에 SSH로 연결하는 명령입니다.

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

답변2

GKE 노드에 SSH를 통해 연결하는 방식은 GCE 인스턴스에 SSH를 통해 연결하는 것과 다르지 않습니다(AFAICT).

기본적으로 두 가지 방법이 있습니다(뭔가 누락되지 않는 한).

첫 번째 경우USER:$(cat ~/.ssh/id_rsa.pub)인스턴스 메타데이터(또는 모든 프로젝트 VM에 대한 액세스 권한을 부여하려는 경우 프로젝트 메타데이터)에 추가합니다 .

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

방화벽 규칙에 소스 IP를 추가하십시오.

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

노드에 연결합니다.

$ ssh me@EXTERNAL_IP

gcloud compute instances list --project PROJECT_ID --filter name:NAME외부 IP를 학습하는 데 사용합니다 .

또는 다음과 같이 연결할 수 있습니다.

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

프로젝트 메타데이터에 키가 자동으로 추가됩니다. block-project-ssh-keys = true먼저 인스턴스 메타데이터 세트에 추가하려면 다음 안내를 따르세요 .

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

OS 로그인 방법:

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

프라이빗 노드의 경우위의 내용은 여전히 ​​유효하지만 추가로 노드의 하위 네트워크에서 실행되는 VPN 서버를 통해 연결해야 합니다.IAP 사용, 또는브라우저 내 SSH(IAP를 사용함).

VPN 서버 인스턴스를 시작하는 방법은 다음에서 확인할 수 있습니다.요점을 따르다( vpn.tf, openvpn-server.sh).

IAP 및 브라우저 내 SSH의 경우 다음에서 포트 22에 대한 액세스를 추가해야 합니다 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

그리고 다음을 추가하세요 --tunnel-through-iap:

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

여기내가 이러한 방법 중 일부를 시도한 결과입니다.

관련 정보