클러스터 등록

이 페이지에서는 Google Cloud에 Kubernetes 클러스터를 수동으로 등록하는 방법을 설명합니다.

시작하기 전에

Google Cloud에 Kubernetes 클러스터를 처음 등록하기 전에 다음 네트워크, Google Cloud, Kubernetes 기본 요건을 완료합니다.

  1. 네트워크 연결을 확인합니다. Google Cloud에서 실행 중인 GKE 클러스터를 등록하면 기본적으로 이 클러스터가 포함됩니다.

  2. Google Cloud 구성

  3. Kubernetes 구성

클러스터 등록

gcloud

Google Cloud 기반 GKE 클러스터 등록

클러스터를 등록하는 동안 워크로드 아이덴티티를 사용하거나 Google Cloud 서비스 계정을 사용하도록 Connect Agent를 구성할 수 있습니다.

워크로드 아이덴티티를 사용하여 클러스터 등록(권장)

  1. GKE 클러스터에서 워크로드 아이덴티티가 사용 설정되었는지 확인합니다.

    다음 명령어를 실행하여 클러스터가 속한 워크로드 아이덴티티 풀을 나열합니다.

    gcloud container clusters describe GKE_CLUSTER --format="value(workloadIdentityConfig.workloadPool)"
    

    다음을 바꿉니다.

    • GKE_CLUSTER: 현재 프로젝트의 GKE 클러스터 name입니다.

    다음과 유사한 결과가 표시되면 GKE 클러스터에서 워크로드 아이덴티티가 이미 사용 설정되었고, 바로 아래의 '클러스터 등록'으로 진행할 수 있습니다.

    GKE_PROJECT_ID.svc.id.goog

    결과가 없으면 GKE 클러스터에서 워크로드 아이덴티티가 사용 설정되지 않은 것입니다. 클러스터 등록을 계속하기 전에 GKE 클러스터에서 워크로드 아이덴티티를 사용 설정하세요.

  2. 워크로드 아이덴티티 사용 설정

    연결된 안내에 따라 GKE 워크로드 아이덴티티를 사용 설정합니다. GKE 워크로드 아이덴티티를 사용 설정하면 사용 설정한 후에 생성된 새 노드 풀에서 인증 동작이 변경되므로 노드 풀의 Compute Engine 인스턴스에 연결된 서비스 계정을 사용하는 애플리케이션에 영향을 미칠 수 있습니다.

  3. 클러스터를 등록합니다.

    다음 명령어 중 하나를 실행하여 클러스터를 등록합니다.

    gcloud beta container hub memberships register MEMBERSHIP_NAME \
     --gke-uri=GKE_URI \
     --enable-workload-identity
    

    또는

    gcloud beta container hub memberships register MEMBERSHIP_NAME \
     --gke-cluster=GKE_CLUSTER \
     --enable-workload-identity
    

    다음을 바꿉니다.

    • MEMBERSHIP_NAME: 허브에 등록되는 클러스터를 고유하게 나타내는 멤버십 이름입니다.
    • GKE_URI: GKE 클러스터 URI입니다(예: https://container.googleapis.com/projects/my-gke-project/locations/us-central1-a/clusters/my-gke-cluster). gcloud container clusters list --uri를 실행하면 URI를 가져올 수 있습니다.
    • GKE_CLUSTER: 현재 프로젝트의 GKE 클러스터 location/name입니다. 위치는 영역이거나 리전일 수 있습니다(예: us-central1-a/my-gke-cluster).

서비스 계정을 사용하여 클러스터 등록

다음 명령어 중 하나를 실행합니다.

gcloud container hub memberships register MEMBERSHIP_NAME \
   --gke-uri=GKE_URI \
   --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH

또는

gcloud container hub memberships register MEMBERSHIP_NAME \
   --gke-cluster=GKE_CLUSTER \
   --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH

다음을 바꿉니다.

  • MEMBERSHIP_NAME: 허브에 등록되는 클러스터를 고유하게 나타내는 멤버십 이름입니다.
  • SERVICE_ACCOUNT_KEY_PATH: 기본 요건의 일부로 다운로드한 서비스 계정의 비공개 키 JSON 파일의 로컬 파일 경로입니다. 이 서비스 계정 키는 gke-connect 네임스페이스에 creds-gcp라는 보안 비밀로 저장됩니다.
  • GKE_URI: GKE 클러스터 URI입니다(예: https://container.googleapis.com/projects/my-gke-project/locations/us-central1-a/clusters/my-gke-cluster). gcloud container clusters list --uri를 실행하면 URI를 가져올 수 있습니다.
  • GKE_CLUSTER: 현재 프로젝트의 GKE 클러스터 location/name입니다. 위치는 영역이거나 리전일 수 있습니다(예: us-central1-a/my-gke-cluster).

비GKE, Anthos clusters on AWS 또는 VMware용 Anthos 클러스터 등록

다음 명령어를 실행합니다.

 gcloud container hub memberships register MEMBERSHIP_NAME \
   --context=KUBECONFIG_CONTEXT \
   --kubeconfig=KUBECONFIG_PATH \
   --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH

다음을 바꿉니다.

  • MEMBERSHIP_NAME: 허브에 등록되는 클러스터를 고유하게 나타내는 데 사용되는 멤버십 이름입니다.
  • SERVICE_ACCOUNT_KEY_PATH: 기본 요건의 일부로 다운로드한 서비스 계정의 비공개 키 JSON 파일의 로컬 파일 경로입니다. 이 서비스 계정 키는 gke-connect 네임스페이스에 creds-gcp라는 보안 비밀로 저장됩니다.
  • KUBECONFIG_CONTEXT: kubeconfig 파일에 나타나는 것과 같이 등록된 클러스터의 클러스터 컨텍스트입니다. kubectl config current-context를 실행하면 명령줄에서 이 값을 가져올 수 있습니다.
  • KUBECONFIG_PATH: 등록 중인 클러스터의 항목을 포함하는 kubeconfig가 저장된 로컬 파일 경로입니다. 환경 변수가 설정된 경우 기본값은 $KUBECONFIG입니다. 그렇지 않으면 이 기본값은 $HOME/.kube/config입니다.

Console

Google Cloud 기반 Anthos 클러스터 등록

이 안내는 Anthos를 사용 설정한 프로젝트에 있는 Google Cloud의 GKE 클러스터에 적용됩니다.

클러스터를 등록하려면 다음 안내를 따르세요.

  1. Google Cloud Console에서 Anthos 클러스터 페이지로 이동합니다. 이 페이지에는 등록된 모든 클러스터가 표시됩니다.

    Anthos 클러스터 페이지로 이동

  2. 기존 클러스터 등록을 클릭합니다.

  3. Environ에 추가할 등록 취소된 클러스터 옆에 있는 등록을 클릭합니다.

  4. 클러스터를 등록할 때 사용할 서비스 계정을 지정합니다. 기본 동작을 유지하고 새 서비스 계정을 만드는 것이 좋습니다.

    • 새 서비스 계정 만들기를 선택한 경우 다음 안내를 따르세요.
      • 서비스 계정 ID를 지정하여 새 서비스 계정을 식별합니다.
      • 서비스 계정 키를 JSON 파일로 다운로드할지 선택합니다. 기본 동작은 유지하고 키를 다운로드하는 것이 좋습니다. 나중에 다운로드할 수 없기 때문입니다.
    • 기존 서비스 계정 사용을 선택한 경우 계정의 서비스 계정 키를 JSON 형식으로 붙여넣습니다.
  5. 선택사항: 클러스터의 새 멤버십 이름을 지정합니다. 기본적으로 클러스터 멤버십 이름은 현재 이름입니다. 하지만 클러스터 이름이 프로젝트 내에서 고유하지 않으면 새 고유한 멤버십 이름을 지정해야 합니다. 모든 클러스터에는 Environ 내에서 고유한 식별자가 필요하기 때문입니다.

  6. 클러스터를 등록하려면 제출을 클릭합니다.

다른 클러스터 등록

이 안내는 비GKE, Anthos clusters on AWS, VMware용 Anthos 클러스터, 기타 모든 GKE 클러스터에 적용됩니다.

클러스터를 등록하려면 다음 안내를 따르세요.

  1. Google Cloud Console에서 Anthos 클러스터 페이지로 이동합니다. 이 페이지에는 등록된 모든 클러스터가 표시됩니다.

    Anthos 클러스터 페이지로 이동

  2. 기존 클러스터 등록을 클릭합니다.

  3. 외부 클러스터 추가를 클릭합니다.

  4. 클러스터 이름 필드에 등록하려는 클러스터의 이름을 입력합니다.

  5. 선택사항: Google Cloud 라벨을 클러스터에 추가합니다.

  6. 등록 명령어 생성을 클릭합니다.

  7. Cloud Shell 또는 서비스 계정 사용자 인증 정보를 저장한 위치에서 페이지에 표시된 gcloud 명령어를 수정하고 실행합니다. 다음 값을 지정해야 합니다.

    • CLUSTER_CONTEXT는 kubeconfig 파일에 나타나는 클러스터의 컨텍스트입니다. kubectl config current-context를 실행하면 명령줄에서 이 값을 가져올 수 있습니다.
    • KUBECONFIG_PATH는 kubeconfig 파일이 저장된 로컬 파일 경로입니다. 환경 변수가 설정되면 기본값은 $KUBECONFIG입니다. 그렇지 않으면 기본값은 $HOME/.kube/config입니다.
    • LOCAL_KEY_PATH는 서비스 계정 키 파일의 경로입니다.

    이 명령어를 실행하면 Connect Agent가 사용자 클러스터에 배포됩니다. Connect Agent가 Google Cloud에 연결되고 클러스터가 등록되면 성공 메시지가 페이지에 표시됩니다.

  8. 라벨 설정을 클릭하거나 라벨을 설정하지 않았으면 건너뛰기를 클릭합니다.

고급 등록 옵션(명령줄 전용)

Connect Agent 매니페스트 다운로드

설치하기 전에 매니페스트를 검사 및 수정하려는 경우와 같이 에이전트를 배포하지 않고 Connect Agent 설치 매니페스트를 다운로드하려면 --manifest-output-file 플래그를 gcloud container hub memberships register 명령어에 전달합니다. 예를 들면 다음과 같습니다.

--manifest-output-file=[MANIFEST_FILE_PATH]

여기서 [MANIFEST_FILE_PATH]는 Connect Agent 설치 매니페스트를 저장할 로컬 파일 경로입니다.

이 옵션을 사용하면 Connect Agent가 클러스터에 배포되지 않습니다. Connect Agent를 배포하려면 다운로드한 매니페스트를 수동으로 클러스터에 적용합니다.

프록시 서버 사용

프록시 서버를 구성하려면 --proxy 플래그를 gcloud container hub memberships register 명령어에 전달합니다. 예를 들면 다음과 같습니다.

--proxy=[URL]

여기서 [URL]은 프록시 주소입니다.

Connect Agent는 CONNECT 기반 HTTP 및 HTTPS 프록시만 지원하며 IP 주소와 호스트 이름을 허용합니다. 프록시 유형에 해당하는 프로토콜을 URL에 지정해야 합니다. 예를 들어 HTTPS 호스트 이름을 전달하려면 다음을 실행합니다.

--proxy=https://mycorpproxy.com:443

별도로 지정하지 않으면 Connect Agent는 프록시에 포트 3128을 사용합니다.

프록시에 승인이 필요한 경우, 다음과 같이 사용자 인증 정보를 전달해야 합니다.

--proxy=http://user:password@10.10.10.10:8888

Windows 및 Linux 노드가 있는 클러스터에 Connect Agent 설치

Connect Agent를 Linux 노드에서 실행해야 합니다. Linux 노드와 Windows 노드가 모두 포함된 혼합 클러스터에 설치하는 경우 배포 정의에 적절한 노드 선택기를 추가하면 Connect Agent가 Linux 노드에 배포되었는지 확인할 수 있습니다.

다음 명령어를 실행하여 적절한 노드 선택기로 배포를 업데이트합니다.

kubectl patch deployment \
$(kubectl get deployment -o=jsonpath='{.items[*].metadata.name}' -n gke-connect) \
-p '{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/os":"linux"}}}}}' -n gke-connect

업데이트가 성공했는지 확인하려면 다음 명령어를 실행합니다.

kubectl get deployment -o=jsonpath='{.items[].spec.template.spec.nodeSelector}' -n gke-connect

명령어는 다음을 반환해야 합니다.

{"kubernetes.io/os":"linux"}

다음 단계