Google Cloud에 타사 클러스터 연결(이전 세대)

GKE 연결 클러스터를 사용하면 Google Cloud 콘솔에서 GKE 클러스터와 함께 기존 Kubernetes 클러스터를 보고 이러한 클러스터에서 Config Sync를 사용하는 중앙 집중식 구성 제어를 포함한 여러 GKE Enterprise 기능을 사용 설정할 수 있습니다.

지원되는 Kubernetes 클러스터

x86 노드가 포함된 규정 준수 Kubernetes 클러스터를 Fleet에 연결하여 Google Cloud 콘솔에서 GKE 클러스터와 함께 볼 수 있습니다.

Google에서 검증된 클러스터 유형과 버전은 다음과 같습니다. 연결 클러스터에서 지원되는 GKE Enterprise 기능에 대한 자세한 내용은 Anthos 구성요소 및 멀티 클라우드 지원을 참조하세요.

연결된 클러스터 유형 Kubernetes 버전
Red Hat OpenShift Kubernetes Engine(OKE) 4.9, 4.10 1.23, 1.24
Red Hat OpenShift Container Platform(OCP) 4.9, 4.10 1.23, 1.24
Rancher Kubernetes Engine(RKE) 1.3.8 1.23, 1.24
KIND 0.12 1.23, 1.24
K3s 1.20 1.20
K3d 4.4.3 1.20

시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Enable the Anthos API.

    Enable the API

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  9. Enable the Anthos API.

    Enable the API

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Fleet 등록 기본 요건을 확인하여 클러스터를 등록하기 위한 관련 권한이 있고 API를 사전 설정했는지 확인합니다.
  13. 클러스터 유형에 필요한 특별한 설정 단계를 포함해서 Google Cloud 외부에서 클러스터를 연결하기 위한 특정 요구사항은 시작하기 전에 가이드를 참조하세요.

연결된 클러스터 등록

GKE Enterprise에 사용하려는 모든 클러스터를 프로젝트의 Fleet에 등록해야 합니다. Fleet은 인프라를 더 쉽게 관리할 수 있도록 Kubernetes 클러스터를 논리적으로 그룹화 및 정규화할 수 있는 방법을 제공합니다. 동일한 Fleet의 클러스터를 Google Cloud 콘솔에서 함께 탐색하고 관리할 수 있으며 여러 GKE Enterprise 및 Google Cloud 구성요소는 ID 동일성 및 네임스페이스 동일성과 같은 Fleet 개념을 사용해서 여러 클러스터 작업을 간소화합니다. Fleet과 Fleet이 지원하는 기능에 대한 자세한 내용은 Fleet 관리 가이드를 참조하세요.

이러한 클러스터에서 GKE Enterprise 기능을 설정하고 사용할 수 있는 권한이 부여되며 GKE 기능 페이지에서 일부 GKE Enterprise 기능을 Fleet 수준에서 관리할 수 있습니다. GKE Enterprise 요금은 등록된 클러스터에만 적용됩니다.

ID 설정

모든 연결된 클러스터에는 Google에 인증할 때 사용할 Connect Agent의 ID가 필요합니다. 클러스터가 요구사항을 충족하는 경우 인증을 위해 사용 설정된 Fleet 워크로드 아이덴티티를 사용하여 이를 등록할 수 있습니다. 이 기능이 사용 설정된 클러스터는 Fleet 전체 Fleet 워크로드 아이덴티티 풀의 ID를 사용합니다. Fleet 워크로드 아이덴티티의 작동 방식과 장점에 대한 자세한 내용은 Fleet 워크로드 아이덴티티 사용을 참조하세요.

Fleet 워크로드 아이덴티티를 사용할 수 없는 경우 연결된 클러스터를 등록하려면 인증을 위해 Google Cloud 서비스 계정이 필요합니다. 연결하려는 각 클러스터에 대해 새 서비스 계정을 만드는 것이 좋습니다. 적절한 역할이 있는 클러스터에 대해 서비스 계정을 만들려면 gcloud로 Google Cloud 서비스 계정 만들기의 안내를 따르세요. 서비스 계정을 만든 후에는 다음 섹션의 설명대로 JSON 파일과 서비스 계정의 사용자 인증 정보(키 파일)를 사용하여 클러스터를 등록할 수 있습니다.

클러스터 등록

등록한 후 Google Cloud에 올바르게 연결되었는지 확인하려면 클러스터의 멤버십 상태를 가져오는 것이 좋습니다. 등록에 문제가 있으면 문제 해결 가이드를 참조하세요.

gcloud

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

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

다음을 바꿉니다.

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

Fleet 워크로드 아이덴티티로 연결된 클러스터 등록

Fleet 워크로드 아이덴티티가 사용 설정된 연결된 클러스터를 등록하려면 다음 명령어를 실행합니다. 이 기능을 사용할 수 있는 연결된 클러스터 유형에 대한 자세한 내용 및 모든 추가 요구사항은 연결된 클러스터 기본 요건을 참조하세요.

gcloud container fleet memberships register MEMBERSHIP_NAME \
   --context=KUBECONFIG_CONTEXT \
   --kubeconfig=KUBECONFIG_PATH \
   --enable-workload-identity \
   --has-private-issuer

콘솔

등록 명령어 생성

Google Cloud 콘솔을 사용하여 클러스터 등록을 위해 gcloud 등록 명령어를 생성할 수 있습니다(서비스 계정만 해당).

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

  1. Google Cloud 콘솔에서 Google Kubernetes Engine 클러스터 개요 페이지로 이동합니다.

    GKE 클러스터로 이동

  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 fleet memberships register 명령어에 전달합니다. 예를 들면 다음과 같습니다.

--manifest-output-file=[MANIFEST_FILE_PATH]

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

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

프록시 서버 사용

프록시 서버를 구성하려면 --proxy 플래그를 gcloud container fleet 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"}
를 반환해야 합니다.

문제 해결

이 설정 중에 문제가 발생하면 Fleet 만들기 문제 해결 가이드를 참조하세요.

연결 클러스터에서 GKE Enterprise 기능 사용 설정

클러스터를 등록하면 클러스터에서 애플리케이션에 사용 가능한 GKE Enterprise 기능을 사용 설정할 수 있습니다. 이러한 기능은 검증된 클러스터 유형에서만 지원됩니다. 이 유형에서 지원되는 현재 기능 버전은 버전 및 업그레이드 지원에서 확인할 수 있습니다.

다음 가이드에서는 클러스터에서 지원되는 기능을 사용 설정하는 방법을 보여줍니다.

튜토리얼, 참조 자료 등을 포함하여 모든 GKE Enterprise 구성요소에 대한 전체 문서 집합은 GKE Enterprise 구성요소를 참조하세요.

연결된 클러스터 액세스

연결된 클러스터를 등록하면 Google Cloud 콘솔의 GKE 및 Anthos 클러스터 페이지에 표시됩니다. 하지만 노드 및 워크로드와 같은 세부정보를 더 보려면 클러스터에 로그인하여 인증해야 합니다. Google Cloud 콘솔에서 연결된 클러스터에 로그인하려면 Google Cloud 콘솔에서 클러스터에 로그인의 안내를 따르세요. 선택한 인증 방법에 따라 사용자 또는 플랫폼 관리자가 몇 가지 추가 설정을 수행해야 사용자 또는 다른 사용자가 클러스터에 로그인할 수 있습니다.

Google Cloud ID를 사용하여 명령줄로 연결된 클러스터에 액세스하려면 Connect Gateway로 등록된 클러스터에 연결을 참조하세요.

기존 서드 파티 ID 공급업체(AWS 클러스터의 EKS 전용, 미리보기 기능)를 사용하여 연결 클러스터에 인증하려면 Fleet를 위한 GKE Identity Service 설정GKE Identity Service로 클러스터 액세스를 참조하세요.

다음 단계