동시에 여러 대상에 배포

Cloud Deploy를 사용하면 여러 대상을 나타내도록 구성된 대상에 배포할 수 있으며, 애플리케이션은 이러한 대상에 동시에 배포됩니다. 파이프라인에서 단계로 식별하는 대상을 멀티 대상이라고 하며, 멀티 대상이 구성된 대상을 하위 대상이라고 합니다.

Google Kubernetes Engine, Cloud Run, GKE Enterprise를 포함하여 Cloud Deploy에서 지원되는 모든 대상 유형에 동시 배포를 사용할 수 있습니다.

동시 배포를 사용하는 이유

예를 들어 동시 배포를 사용하여 여러 프로덕션 대상에 애플리케이션을 배포할 수 있습니다. 이 경우 진행 상황(예: 개발에서 스테이징을 거쳐 프로덕션으로 진행)이 없으므로 각 대상에 지속적으로 배포할 필요가 없습니다.

그리고 이러한 동시 배포는 일반적인 배포 파이프라인 진행의 일부일 수 있습니다.
dev -> staging -> prod [prod1, prod2, prod3, prod4, ...].

동시 배포에 사용되는 Cloud Deploy 리소스

동시 배포에는 다음과 같은 Cloud Deploy 특수 리소스가 사용됩니다.

  • 다중 대상

    다중 대상은 대상 구성 YAML의 최상위 수준에서 multiTarget 속성으로 구성된 대상이며 런타임 클러스터 또는 서비스를 참조하는 대신 하나 이상의 다른 대상을 참조합니다(multiTarget.targetIds 사용).

  • 하위 대상

    하위 대상은 다중 대상에서 multiTarget.targetIds로 참조되는 모든 대상입니다. 또한 하위 요소는 지원되는 대상 유형(Google Kubernetes Engine, GKE Enterprise, Cloud Run)을 참조해야 합니다.

  • 컨트롤러 출시

    컨트롤러 출시는 다중 대상에 해당하는 출시입니다.

    컨트롤러 출시로 수행할 수 있는 작업과 수행할 수 없는 작업에 대한 자세한 내용은 제한사항을 참조하세요.

  • 하위 출시

    하위 출시로 수행할 수 있는 작업과 수행할 수 없는 작업에 대한 자세한 내용은 제한사항을 참조하세요.

동시 배포 설정

동시 배포를 설정하려면 하나의 다중 대상과 필요한 하위 대상의 수를 정의해야 합니다(한도까지). 대상 정의는 다음을 제외하고 모든 대상과 동일합니다.

  • 다중 대상에는 multiTarget 속성이 포함됩니다.
  • 하위 대상은 multiTarget 속성을 포함하지 않지만 multiTarget.targetIds 속성을 사용하는 다중 대상에서 참조됩니다.
  • 승인을 위해 다중 대상을 구성할 수 있지만 requireApproval:true가 포함될 수 없는 하위 대상은 구성할 수 없습니다.

다중 대상 및 하위 대상에는 커스텀 실행 환경 구성이 포함될 수 있습니다. 하위 대상이 실행 환경을 지정하지 않으면 다중 대상 정의에서 정의된 실행 환경이나 기본값을 상속합니다. 자세한 내용은 실행 환경 및 동시 배포를 참조하세요.

다중 대상 구성

다중 대상은 배포 파이프라인에서 하나의 단계로 식별되지만 하나 이상의 하위 대상을 가리키는 단일 대상입니다.

다중 대상 구성에는 multiTarget 속성이 포함됩니다. 다중 대상에는 gke, run 또는 anthosCluster 속성이 포함될 수 없습니다. 다중 대상의 구성은 배포하는 런타임에 관계없이 동일합니다.

배포 파이프라인 YAML 또는 별도의 YAML 파일에서 multiTarget를 포함한 기본 대상 정의를 만듭니다.

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: TARGET_NAME
description: TARGET_DESCRIPTION
multiTarget:
 targetIds: [ CHILD_TARGET1, CHILD_TARGET2, CHILD_TARGETn ]

YAML 내용:

  • TARGET_NAME배포 파이프라인 정의stages.targetId 속성에서 사용되는 이 다중 대상의 이름입니다.

  • CHILD_TARGET1, CHILD_TARGET2,...CHILD_TARGETn은 이 다중 대상이 배포하는 하위 대상들의 이름입니다. 각 이름은 하위 대상 정의의 name 속성에 해당합니다.

multiTarget.targetIds 속성이 있으면 이 대상이 다중 대상이 됩니다.

하위 대상 구성

다중 대상 구성에서 하위 대상으로 식별된 각 대상에서 다른 대상을 하위 대상으로 구성합니다.

배포 파이프라인 YAML 또는 별도의 YAML 파일에서 기본 대상 정의를 만듭니다.

GKE

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: CHILD_TARGET1
description: TARGET_DESCRIPTION
gke:
 cluster: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME

YAML 내용:

  • CHILD_TARGET1은 이 하위 대상의 이름입니다. 이 이름은 다중 대상 정의multiTarget.targetIds 속성에 있는 대상 목록의 구성원 하나에 해당합니다.

  • gke.cluster 속성의 값은 이 대상이 참조하는 클러스터의 리소스 이름으로, 프로젝트 ID, 리전, 클러스터 이름을 포함합니다.

이 대상은 표준 GKE 대상과 동일하게 구성됩니다. 이 하위 항목을 만드는 유일한 방법은 다중 대상의 multiTarget.targetIds 속성에서 참조하는 것입니다.

Cloud Run

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: CHILD_TARGET1
description: TARGET_DESCRIPTION
run:
 location: projects/PROJECT_ID/locations/REGION

YAML 내용:

  • CHILD_TARGET1은 이 하위 대상의 이름입니다. 이 이름은 다중 대상 정의multiTarget.targetIds 속성에 있는 대상 목록의 구성원 하나에 해당합니다.

  • run.location 속성의 값은 프로젝트 ID와 리전을 포함하여 이 대상이 참조하는 Cloud Run 서비스의 리소스 이름입니다.

이 대상은 표준 Cloud Run 대상과 동일하게 구성됩니다. 이 하위 항목을 만드는 유일한 방법은 다중 대상의 multiTarget.targetIds 속성에서 참조하는 것입니다.

GKE Enterprise

apiVersion: deploy.cloud.google.com/v1
kind: Target
metadata:
 name: CHILD_TARGET1
description: TARGET_DESCRIPTION
anthosCluster:
 membership: projects/PROJECT_ID/locations/global/memberships/MEMBERSHIP_NAME

YAML 내용:

이 대상은 표준 GKE Enterprise 대상과 동일하게 구성됩니다. 이 하위 항목을 만드는 유일한 방법은 다중 대상의 multiTarget.targetIds 속성에서 참조하는 것입니다.

출시 버전 만들기

다중 대상 및 하위 대상을 구성한 상태로 배포 파이프라인 및 대상 리소스를 만든 후 평소와 같이 출시 버전을 만듭니다.

배포 파이프라인의 수명 주기는 모든 Cloud Deploy 파이프라인 및 대상과 동일하며, 다중 대상이 포함된 단계에 도달하면 Cloud Deploy가 다중 대상 및 하위 출시에 대한 컨트롤러 출시를 만들어 각 하위 대상에 애플리케이션을 배포한다는 점만 다릅니다.

Cloud Deploy 작업에 대한 응답의 Pub/Sub 메시지가 컨트롤러 출시와 하위 출시를 구분합니다.

제한사항

  • 다중 대상에 최대 50개의 하위 대상을 포함할 수 있습니다.

  • 단일 다중 대상의 모든 하위 대상은 동일한 대상 런타임을 포함해야 합니다(예: 모든 GKE 또는 모든 GKE Enterprise).

  • 배포 파이프라인 내에서 하위 대상은 하나의 상위 다중 대상만 가질 수 있습니다.

  • 다중 대상은 하위 대상이 반드시 있어야 하며, 자체 또는 다른 다중 대상을 하위 대상으로 참조할 수 없습니다.

  • 단일 배포 파이프라인 내에서 한 하위 대상을 두 번 이상 사용할 수 없지만 다른 파이프라인에서는 다시 사용할 수 있습니다.

  • 기본 풀에는 동시 실행 한도가 있지만 비공개 풀에는 그렇지 않습니다.

    다중 대상에 배포하면 Cloud Build 동시 실행 한도까지 모든 하위 출시가 동시에 배포됩니다. 하위 대상이 이 한도를 초과하는 경우 일부 대상의 배포 작업이 다른 대상의 배포가 완료될 때까지 실행되지 않습니다. 즉, 이 경우에는 Cloud Deploy가 모든 하위 대상에 동시에 배포하지 않습니다.

    또한 대상에 확인 작업이 포함된 경우 애플리케이션이 모든 하위 대상에 배포되기 전에 하나 이상의 이러한 확인 작업이 시작될 수 있습니다.

    Cloud Build 문서에 지정된 한도보다 더 많은 대상에 동시에 배포할 수 있어야 하는 경우 다음 두 가지 옵션이 있습니다.

실행 환경 및 동시 배포

기본이 아닌 실행 환경을 사용하도록 각 대상을 구성할 수 있습니다.

  • 다중 대상에 기본이 아닌 실행 환경이 있는 경우 기본 실행 환경을 사용하는 모든 하위 대상은 다중 대상의 기본이 아닌 실행 환경을 상속합니다.

  • 다중 대상이 기본 실행 환경을 사용하는 경우 기본이 아닌 실행 환경으로 구성된 모든 하위 대상은 기본이 아닌 실행 환경을 사용합니다.

이러한 규칙을 사용하면 다중 대상에서 하위 대상으로 실행 환경을 더 쉽게 전파할 수 있으므로, 각 하위 대상의 실행 환경을 정의하거나 변경할 필요가 없으며, 필요한 경우 하나 이상의 하위 대상에 대한 실행 환경을 맞춤설정할 수 있습니다.

Cloud Deploy의 실행 환경에 대한 자세한 내용은 Google Cloud Deploy 실행 환경 사용을 참조하세요.

동시 배포 롤백

여러 동시 대상에서 배포를 롤백해야 하는 경우 대상 롤백에 설명된 대로 다중 대상을 롤백합니다.

동시 배포 승인

다른 대상과 마찬가지로 승인이 필요하도록 동시 배포를 구성할 수 있습니다. 하지만 동시 배포를 사용하면 다중 대상에 대한 승인만 구성할 수 있습니다. 승인 또는 거부는 모든 하위 대상에 영향을 미칩니다.

Google Cloud 콘솔에서 동시 배포 보기

Google Cloud 콘솔에서 다중 대상, 하위 대상, 컨트롤러 출시, 하위 출시의 세부정보를 확인할 수 있습니다.

특정 배포 파이프라인의 대상 목록을 보면 배포 파이프라인 세부정보에 다중 대상은 나열되지만 하위 대상은 나열되지 않습니다. 그러나 출시 세부정보를 보면 컨트롤러 출시 및 하위 출시를 볼 수 있습니다. 또한 배포 파이프라인 세부정보 페이지의 출시 탭에 나열된 컨트롤러 및 하위 출시를 볼 수도 있습니다.

출시 검사기에서 하위 출시의 렌더링된 매니페스트를 확인하고 비교할 수 있습니다.

대상에 배포 매개변수 전달

매니페스트에 매개변수를 포함하고 전달 파이프라인 정의에 값을 포함시켜 하위 대상을 구분할 수 있습니다. 이러한 값은 해당 대상의 라벨 일치에 따라 별도의 매니페스트에 별도로 적용될 수 있습니다.

예를 들어 각 하위 타겟의 복제본 수를 다르게 지정할 수 있습니다. 이렇게 하려면 전달 파이프라인의 진행 상태에 매개변수 및 값을 포함하여 각 매개변수-값 쌍에 대해 일치시킬 하위 타겟의 라벨을 포함해야 합니다.

배포 매개변수 자세히 알아보기

배포 전략에 동시 배포 사용

카나리아 배포 전략을 사용하는 경우 동시에 배포할 수 있습니다. 자세한 내용은 카나리아 배포 전략에 병렬 배포 사용을 참조하세요.

다음 단계