SSH를 통해 클러스터 노드에 연결

이 페이지에서는 GKE On-Prem 클러스터 노드에 SSH로 연결하는 방법을 설명합니다.

시작하기 전에

이 단계를 완료하려면 사용자 및 관리자 클러스터 kubeconfig 파일의 위치가 필요합니다. 기본적으로 이러한 파일은 관리자 및 사용자 클러스터를 만든 디렉터리에 저장됩니다. kubeconfig에 관한 자세한 내용은 GKE 문서의 kubectl에 대한 클러스터 액세스 구성을 참조하세요.

클러스터 노드의 IP 주소 가져오기

사용자 클러스터 노드의 IP 주소를 가져옵니다.

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get nodes --output wide

여기서 [USER_CLUSTER_KUBECONFIG]는 사용자 클러스터의 kubeconfig 파일 경로입니다.

관리자 클러스터 노드의 IP 주소를 가져옵니다.

kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get nodes --output wide

여기서 [ADMIN_CLUSTER_KUBECONFIG]는 관리자 클러스터의 kubeconfig 파일 경로입니다.

두 명령어 모두 INTERNAL-IP 필드를 참고합니다. 이 주소는 노드 IP 주소입니다.

SSH를 통해 사용자 클러스터 노드에 연결

사용자 클러스터의 SSH 키를 가져옵니다.

kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get secrets -n [USER_CLUSTER_NAME] ssh-keys \
-o jsonpath='{.data.ssh\.key}' | base64 -d > \
~/.ssh/[USER_CLUSTER_NAME].key && chmod 600 ~/.ssh/[USER_CLUSTER_NAME].key

각 항목의 의미는 다음과 같습니다.

  • [ADMIN_CLUSTER_KUBECONFIG]는 관리자 클러스터의 kubeconfig 파일의 경로입니다.

  • [USER_CLUSTER_NAME]은 사용자 클러스터의 이름입니다.

위 명령어는 다음 단계를 수행합니다.

  • 관리자 클러스터에서 [USER_CLUSTER_NAME] 네임스페이스에 있는 ssh-keys라는 이름의 보안 비밀 ssh.key 필드를 가져옵니다.

  • Base64는 키를 디코딩합니다.

  • 디코딩된 키를 ~/.ssh/[USER_CLUSTER_NAME].key 파일에 저장합니다.

  • 키 파일에 적절한 액세스 권한을 설정합니다.

키를 사용하여 사용자 클러스터 노드에 SSH로 연결합니다.

ssh -i ~/.ssh/[USER_CLUSTER_NAME].key ubuntu@[NODE_IP]

여기서 [NODE_IP]이전에 수집한 사용자 클러스터에 있는 노드의 내부 IP 주소입니다.

SSH를 통해 관리자 클러스터 노드에 연결

관리자 클러스터의 SSH 키를 가져옵니다.

kubectl --kubeconfig [ADMIN_CLUSTER_KUBECONFIG] get secrets -n kube-system sshkeys \
-o jsonpath='{.data.vsphere_tmp}' | base64 -d > \
~/.ssh/admin-cluster.key && chmod 600 ~/.ssh/admin-cluster.key

여기서 [ADMIN_CLUSTER_KUBECONFIG]는 관리자 클러스터의 kubeconfig 파일 경로입니다.

위 명령어는 다음 단계를 수행합니다.

  • 관리자 클러스터에서 kube-system 네임스페이스에 있는 sshkeys라는 이름의 보안 비밀 vsphere_tmp 필드를 가져옵니다.

  • Base64는 키인 vsphere_tmp 필드를 디코딩합니다.

  • 디코딩된 키를 ~/.ssh/admin-cluster.key 파일에 저장합니다.

  • 키 파일에 적절한 액세스 권한을 설정합니다.

키를 사용하여 관리자 클러스터 노드에 SSH로 연결합니다.

ssh -i ~/.ssh/admin-cluster.key ubuntu@[NODE_IP]

여기서 [NODE_IP]이전에 수집한 관리자 클러스터에 있는 노드의 내부 IP 주소입니다.