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

이 페이지에서는 보안 셸(SSH)을 GKE On-Prem 클러스터 노드로 가져오는 방법을 설명합니다.

개요

사용자 또는 관리자 클러스터 노드에 SSH로 연결하려면 클러스터의 제어 영역에서 SSH 키를 다운로드합니다. 그런 다음 이 키를 사용하여 클러스터 노드로 셸을 가져옵니다.

SSH 키를 다운로드한 후 보안 비밀/사용자 인증 정보 관리 시스템(예: HashiCorp Vault)에 SSH 키를 저장하는 것이 좋습니다. 향후 클러스터 노드에 SSH로 연결하고 API 서버가 다운되면 저장된 SSH 키가 필요합니다.

클러스터 노드의 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를 통해 사용자 클러스터 노드에 연결

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

    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
    

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

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

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

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

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

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

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

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

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

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

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

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

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

    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
    

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

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

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

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

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

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

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

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

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