Cloud Deploy 실행 환경 사용

Cloud Deploy 실행 환경은 Cloud Deploy가 렌더링, 배포 전, 배포, 확인, 배포 후 작업을 실행하는 환경입니다. 실행 환경은 다음 구성요소로 구성됩니다.

  • Cloud Deploy가 렌더링, 배포 전, 배포, 확인, 배포 후 작업을 실행하는 Cloud Build 작업자 풀(기본 또는 비공개)

  • Cloud Deploy를 호출하여 이러한 작업을 수행하는 서비스 계정(기본 또는 대체)

  • Cloud Storage에서 렌더링된 매니페스트의 스토리지 위치(기본 또는 대체)

  • 작업의 Cloud Build 제한 시간(기본 또는 커스텀)

이 문서에서는 Cloud Deploy의 기본 실행 환경, 서비스 계정, 스토리지에 대해 알아보고 이러한 기본값을 변경하는 이유와 방법을 설명합니다.

기본값

Cloud Deploy가 운영하고 렌더링 및 배포를 실행하고 렌더링된 매니페스트와 같은 애셋을 저장하는 데 사용하는 기본값은 다음과 같습니다.

  • 기본 작업자 풀

    기본적으로 Cloud Deploy는 기본 Cloud Build 작업자 풀에서 실행됩니다. 하지만 Cloud Build 비공개 작업자 풀을 사용하도록 Cloud Deploy를 구성할 수 있습니다.

    작업자 풀에 대한 자세한 내용은 Cloud Build 기본 풀 및 비공개 풀 개요를 참조하세요.

  • 기본 실행 서비스 계정

    기본적으로 Cloud Deploy는 기본 Compute Engine 서비스 계정을 사용합니다.

  • 기본 Cloud Deploy 스토리지 위치

    이 값은 Cloud Deploy에서 렌더링된 매니페스트를 저장하는 Cloud Storage 버킷입니다. 기본적으로 Cloud Deploy는 다음 형식의 Cloud Deploy 리소스와 동일한 리전에 Cloud Storage 버킷을 생성합니다.

    <location>.deploy-artifacts.<project ID>.appspot.com

  • 기본 Cloud Build 제한 시간

    기본적으로 Cloud Build에서 Cloud Deploy에 대해 수행하는 작업에 1시간의 제한 시간이 있습니다. 대상 구성의 실행 환경 사양에서 해당 제한 시간을 변경할 수 있습니다.

  • Skaffold, gcloud CLI, kubectl의 기본 세부정보 수준

    기본적으로 이러한 도구의 로그 수준은 해당 기본값(일반적으로 warn 또는 이에 상응하는 기본값)으로 설정됩니다. debug 또는 동등하게 이를 변경할 수 있습니다.

후속 섹션에서는 이러한 값을 변경하는 상황과 이를 변경하는 방법에 대한 링크를 설명합니다.

Cloud Build 작업자 풀 정보

Cloud Deploy 실행 환경은 다음 중 하나를 사용할 수 있습니다.

  • Cloud Build 기본 풀

    기본 작업자 풀은 공개 인터넷에 액세스할 수 있는 안전한 호스팅 환경입니다. 렌더링, 배포, 배포 전, 배포 후, 확인 작업은 다른 워크로드와 격리된 이 풀에서 실행됩니다.

  • 비공개 풀

    비공개 작업자 풀은 기본 작업자 풀보다 많이 맞춤설정할 수 있는 비공개 전용 풀입니다. 이러한 맞춤설정에는 비공개 네트워크의 리소스에 액세스하는 기능이 포함될 수 있습니다. 기본 작업자 풀과 마찬가지로 비공개 작업자 풀은 Cloud Build에서 호스팅되고 완전 관리됩니다. 이러한 풀은 설정, 업그레이드 또는 확장할 인프라 없이도 수직 확장하거나 0으로 축소할 수 있습니다.

    Cloud Build 비공개 풀 개요에서는 기본 작업자 풀과 비공개 작업자 풀의 기능을 비교하는 표를 포함하여 자세히 설명합니다.

Cloud Deploy 실행 환경 변경

다음과 같은 경우 Cloud Deploy 실행 환경을 변경할 수 있습니다.

  • 비공개 Google Kubernetes Engine 클러스터에 배포하려는 경우

  • 렌더링, 배포, 배포 전, 배포 후, 확인 작업 또는 다섯 가지의 조합으로 다른 조직과 격리된 환경에서 수행하려는 경우

  • 이러한 작업은 공개 인터넷에 연결되지 않은 환경에서 수행하려고 합니다.

  • 렌더링과 배포를 위해 별도의 환경이 필요한 경우

  • 기본 서비스 계정에서 사용할 수 있는 권한보다 사용 사례에 더 구체적인 권한이 있는 전용 서비스 계정을 사용하려고 합니다.

  • 렌더링된 매니페스트를 기본 Cloud Storage 버킷이 아닌 다른 위치에 저장하려고 합니다.

실행 환경의 세 가지 부분(작업자 풀, 서비스 계정, 스토리지)의 구성은 각 대상의 YAML 구성에서 대상별로 수행됩니다.

기본 풀에서 비공개 풀로 변경

풀이 해당 대상에 대해서만 사용되도록 RENDER, DEPLOY, PREDEPLOY, POSTDEPLOY 또는 VERIFY(또는 이 다섯 가지의 조합)의 대상별 작업자 풀을 구성합니다.

렌더링 및 배포 작업 모두에 기본 작업자 풀을 사용하려면 아무 작업도 수행할 필요가 없습니다.

다음은 DEPLOY에 비공개 작업자 풀을, RENDER, PREDEPLOY, POSTDEPLOY, VERIFY에 기본 작업자 풀을 지정하는 샘플 대상 구성입니다.

executionConfigs:
- usages:
  - DEPLOY
  privatePool:
    workerPool: "projects/p123/locations/us-central1/workerPools/wp123"
- usages:
  - RENDER
  - PREDEPLOY
  - VERIFY
  - POSTDEPLOY

대상에 비공개 풀을 구성하는 방법에 대한 자세한 내용은 배포 파이프라인 구성 문서를 참조하세요.

실행 서비스 계정을 기본에서 커스텀으로 변경

작업자 풀과 마찬가지로 대상별로 렌더링 또는 배포(또는 둘 다)에 사용할 대체 서비스 계정을 지정할 수 있습니다. 이렇게 하려면 workerPool 요소 뒤에 대상 구성에 다음 줄을 추가합니다.

serviceAccount: "[name]@[project_name].iam.gserviceaccount.com"

Cloud Deploy 서비스 계정 문서의 설명대로 지정된 서비스 계정에는 clouddeploy.jobRunner 역할이 포함되어야 합니다.

이 구성에 대한 자세한 내용은 대상 정의를 참조하세요.

스토리지 위치 변경

Cloud Deploy 기본값에서 스토리지 버킷을 변경하려면 workerPool 스탠자의 대상 정의에 다음 줄을 추가합니다.

artifactStorage: "gs://[bucket_name]/[dir]"

이 구성은 렌더링된 매니페스트가 저장되는 위치를 변경하지만 렌더링 소스가 저장되는 위치에는 영향을 미치지 않습니다.

Skaffold, gcloud CLI, kubectl의 로그 수준 변경

Skaffold, gcloud CLI, kubectl의 로그 수준을 해당 기본값에서 debug(또는 이와 동등한 수준)로 변경하려면 실행 구성에서 verbosetrue로 설정하세요. 예를 들면 다음과 같습니다.

executionConfigs:
- usages:
  - [RENDER | PREDEPLOY|  DEPLOY | VERIFY | POSTDEPLOY]
  workerPool:
  serviceAccount:
  artifactStorage:
  executionTimeout:
  verbose: true

VPC 서비스 제어 경계에서 Cloud Deploy 사용

Cloud Deploy는 VPC 서비스 제어를 지원합니다.

VPC 서비스 제어 빠른 시작을 따라 서비스 경계를 설정할 수 있습니다.

제한사항

  • 기본 작업자 풀이 아닌 대상의 실행 환경에 Cloud Build 비공개 작업자 풀을 사용해야 합니다.

  • 작업자 풀이 있는 프로젝트와 Cloud Deploy 리소스가 포함된 프로젝트는 동일한 VPC 서비스 제어 보안 경계에 있어야 합니다.

  • VPC 서비스 제어 경계에 배포하는 모든 GKE 클러스터는 비공개 클러스터여야 합니다.

    비공개 클러스터에 비공개 풀을 설정하려면 이 튜토리얼을 참조하세요.

다음 단계