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
여기내가 이러한 방법 중 일부를 시도한 결과입니다.