GKE Enterprise 사용자 클러스터에 배포

이 문서에서는 애플리케이션을 GKE Enterprise 클러스터에 배포하는 방법을 설명합니다. GKE Enterprise 대상 지원에 따라 AWS, Azure, 온프레미스 클러스터에 배포가 가능합니다.

Cloud Deploy를 사용하면 Connect 게이트웨이를 사용하여 액세스할 수 있는 GKE Enterprise 사용자 클러스터에 컨테이너 기반 워크로드를 배포할 수 있습니다.

시작하기 전에

  • 배포 대상이 되는 GKE Enterprise 사용자 클러스터가 있어야 합니다.

    GKE Enterprise 사용자 클러스터로 만든 클러스터를 사용하거나 기존 Kubernetes 클러스터를 등록할 수도 있습니다. GKE Enterprise용으로 만든 클러스터에는 멤버십이 자동으로 수신됩니다. Fleet에 등록하는 기존 클러스터의 경우 등록할 때 멤버십 이름을 지정합니다. 대상 구성에 이 멤버십 이름이 필요합니다.

    Google Cloud CLI 버전 407.0.0 이상을 사용할 경우 Google Kubernetes Engine 클러스터를 등록할 때 gcloud container fleet memberships register 명령어--install-connect-agent 플래그를 포함해야 합니다. Connect 에이전트는 더 이상 기본적으로 설치되지 않습니다.

  • 하나 이상의 등록된 클러스터를 Google Cloud에 연결하도록 Connect 게이트웨이를 설정합니다.

    Cloud Deploy 실행 서비스 계정으로 사용할 동일한 서비스 계정을 사용하여 게이트웨이를 설정해야 합니다. 그렇지 않으면 GKE Enterprise 클러스터에 배포하는 데 필요한 권한이 실행 서비스 계정에 포함되지 않습니다.

GKE Enterprise에 배포하도록 Cloud Deploy 설정

  1. 대상 구성을 만듭니다.

    대상은 배포 파이프라인 YAML에서 구성하거나 별도의 파일에 포함할 수 있습니다. 또한 동일한 파일에 대상을 두 개 이상 구성할 수 있지만 서로 다른 kind: Target 스탠자에 있어야 합니다.

  2. 게이트웨이를 통해 연결된 클러스터와 상호작용할 수 있도록 실행 서비스 계정필요한 역할을 부여합니다.

    이러한 권한 부여는 기본 Cloud Deploy 서비스 계정 또는 커스텀 서비스 계정 중 무엇을 사용하든 필요한 단계입니다.

  3. Anthos 클러스터의 기반이 되는 Kubernetes 클러스터의 실행 서비스 계정RBAC를 설정합니다.

  4. 선택사항: 기본 클러스터가 GKE 클러스터가 아닌 경우 클러스터가 Artifact Registry에서 가져올 수 있도록 imagePullSecret을 구성해야 할 수 있습니다.

  5. 대상 정의에서 GKE Enterprise 클러스터를 가리키는 anthosCluster 스탠자를 만듭니다.

    GKE Enterprise 클러스터를 지정하는 구문은 다음과 같습니다.

    anthosCluster:
     membership: projects/[project_name]/locations/global/memberships/[membership_name]
    

    이 GKE Enterprise 리소스 식별자는 다음 요소를 사용합니다.

    • [project_name]은 이 클러스터를 실행하는 Google Cloud 프로젝트의 이름입니다.

      GKE Enterprise 클러스터를 포함한 배포 대상 클러스터가 배포 파이프라인과 동일한 프로젝트에 있을 필요는 없습니다.

    • [membership_name]은 Fleet에 클러스터를 등록할 때 선택한 이름입니다.

    location의 경우 모든 GKE Enterprise 클러스터 멤버십은 global이므로 이 리소스 식별자에서 /locations/global/을 변경할 필요가 없습니다.

다음은 GKE Enterprise 사용자 클러스터를 가리키는 대상 구성 예시입니다.

      apiVersion: deploy.cloud.google.com/v1
      kind: Target
      metadata:
       name: qsdev
      description: development cluster
      anthosCluster:
       membership: projects/my-app/locations/global/memberships/my-app-dev-cluster

다음 단계