Cloud Deploy는 Google Cloud Observability에서 생성된 알림을 사용하는 분석 작업을 지원합니다. 이 알림은 Google Cloud Observability의 측정항목 및 기타 데이터를 기반으로 합니다. 하지만 다른 측정항목 제공업체를 사용하도록 Cloud Deploy를 확장할 수도 있습니다. 이 문서에서는 분석 작업을 구성하고 사용하는 방법과 원하는 공급업체의 측정항목을 분석하는 로직이 포함된 맞춤 컨테이너의 요구사항을 설명합니다.
시작하기 전에
-
Google 계정에
로그인합니다.
아직 계정이 없으면 새 계정을 등록하세요.
-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init Compute Engine, Cloud Deploy API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할 (roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com -
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init Compute Engine, Cloud Deploy API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 포함된 서비스 사용량 관리자 IAM 역할 (roles/serviceusage.serviceUsageAdmin)이 필요합니다. 역할 부여 방법 알아보기gcloud services enable clouddeploy.googleapis.com
compute.googleapis.com
필요한 역할
분석 작업을 만들고 사용하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트 계정에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
-
Cloud Deploy 작업 실행자 (
roles/clouddeploy.jobRunner) -
IAM 서비스 계정 사용자 (
roles/iam.serviceAccountUser) -
서비스 사용량 소비자(
roles/serviceusage.serviceUsageConsumer)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
Cloud Deploy 서비스 계정에 분석 작업을 만들고 사용하는 데 필요한 권한이 있는지 확인하려면 관리자에게 프로젝트의 Cloud Deploy 서비스 계정에 다음 IAM 역할을 부여해 달라고 요청하세요.
-
IAM 서비스 계정 사용자 (
roles/iam.serviceAccountUser) -
Cloud Deploy 출시자 (
roles/clouddeploy.releaser) -
Cloud Deploy 운영자 (
roles/clouddeploy.operator)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
관리자는 커스텀 역할이나 다른 사전 정의된 역할을 통해 Cloud Deploy 서비스 계정에 필요한 권한을 부여할 수도 있습니다.
맞춤 분석 작업 구성
맞춤 분석 작업은 Google Cloud Observability의 알림을 사용하는 분석 작업과 동일하지만, 맞춤 작업은 맞춤 컨테이너와 해당 컨테이너에서 실행하여 측정항목 제공업체의 데이터를 처리하는 명령어를 참조하는 하나 이상의 작업을 사용합니다.
이 섹션에서는Google Cloud 모니터링 제공업체를 사용하지 않는 Cloud Deploy 분석 작업을 구성하는 방법을 설명합니다.
analysis 스탠자는 배포 전략 구성 (표준 전략의 경우 strategy.standard.analysis) 내에서 직접 사용할 수 있습니다. 단계별로 분석을 구성하려면 커스텀 카나리아(strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis)를 사용합니다.
strategy:
standard:
analysis:
duration: DURATION
customChecks:
- id: CHECK_ID
frequency: FREQUENCY
task:
type: container
image: IMAGE_NAME
command: COMMAND
args: [ARGS]
env:
[VAR_NAME: VALUE]
각 항목의 의미는 다음과 같습니다.
DURATION분석 작업을 실행할 시간(초)입니다. 기간이 만료되면 작업이 완료됩니다. 분석이 실패하면 (컨테이너가 0이 아닌 종료 코드를 반환함) 기간이 만료되기 전에 작업이 종료됩니다 (
FAILED).CHECK_ID개별 확인의 ID입니다. 이 ID는 이 분석 작업 내에서 고유해야 합니다.
FREQUENCY개별 확인을 실행할 빈도(초)입니다.
IMAGE_NAME컨테이너 이미지를 식별하는 경로와 이름입니다.
COMMAND해당 컨테이너에서 실행할 명령어입니다(예: 셸 스크립트(
/bin/bash)).ARGS해당 명령어의 인수 목록입니다. 쉼표로 구분된 목록입니다. COMMAND_TO_RUN이 '/bin/sh'인 경우 인수 중 하나는
-c이며 또 다른 인수는 호출하는 셸에서 실행할 전체 명령어입니다.VAR_NAME컨테이너에 전달할 환경 변수의 이름입니다. 환경 변수를 사용하여 컨테이너의 동작을 구성합니다. 즉, 변수와 해당 값은 측정항목 제공자에서 구체적으로 무엇을 모니터링해야 하는지 컨테이너에 알려줍니다.
여기에서 시스템 매개변수를 환경 변수로 사용할 수 있습니다.
VALUE각 환경 변수의 값입니다. Cloud Deploy는 이러한 환경 변수를 컨테이너에 값과 함께 전달하는 것 외에는 아무것도 하지 않습니다. 분석 로직에서 값을 사용하는 것은 컨테이너에 달려 있습니다.
커스텀 분석 정의의 각 검사에는 컨테이너, 해당 컨테이너에서 실행할 명령어, 해당 컨테이너에 전달할 적용 가능한 환경 변수를 참조하는 작업이 포함됩니다.
커스텀 컨테이너
맞춤 분석의 경우 제공하는 컨테이너가 사용하는 측정항목 제공업체의 원격 분석, 로그 또는 기타 데이터를 분석합니다. Cloud Deploy 분석 작업은 컨테이너의 반환 코드를 기다립니다.
커스텀 컨테이너가 해야 하는 작업
커스텀 컨테이너는 측정항목 제공업체에서 데이터를 수집하고, 측정항목, 로그 또는 기타 데이터가 애플리케이션이 제대로 작동하는지 나타내는지 확인하고, 결과를 Cloud Deploy에 반환합니다.
맞춤 컨테이너가 반환해야 하는 항목
Cloud Deploy는 0 또는 0이 아닌 종료 코드를 반환하는 것 외에는 맞춤 컨테이너에서 아무것도 요구하지 않습니다. 컨테이너가 0이 아닌 종료 코드를 반환하면 분석이 실패합니다.
컨테이너는 Cloud Deploy에서 제공하는 Cloud Storage 버킷에 있는 results.json이라는 파일에 결과를 쓸 수 있습니다 (JSON 형식). 파일에는 키-값 쌍 형식의 메타데이터가 포함됩니다. 필수는 아닙니다.
사용 가능한 환경 변수
Cloud Deploy는 실행 환경에 다음 환경 변수도 제공하고 채웁니다. 이러한 환경 변수를 배포 후크, 작업 확인 또는 커스텀 타겟 렌더링 또는 배포의 일부로 사용할 수 있습니다.
ANTHOS_MEMBERSHIPANTHOS유형 대상의 경우 Anthos 멤버십의 완전하게 지정된 리소스 이름입니다.CLOUD_RUN_LOCATIONRUN유형 대상의 경우 Cloud Run 서비스가 배포된 리전입니다.CLOUD_RUN_PROJECTRUN유형 대상의 경우 Cloud Run 서비스가 생성된 프로젝트입니다.CLOUD_RUN_SERVICERUN유형 대상의 경우 배포된 Cloud Run 서비스의 이름입니다.CLOUD_RUN_SERVICE_URLSRUN유형 대상의 경우 최종 사용자가 서비스에 액세스하는 데 사용할 URL 또는 쉼표로 구분된 URL 목록입니다.Google Cloud 콘솔의 해당 서비스에 대한 Cloud Run 서비스 세부정보에서 이를 확인할 수 있습니다. URL은 Cloud Run 서비스가 성공적으로 배포된 후 Cloud Run에 의해 생성됩니다. 따라서 이 환경 변수는 postdeploy 후크와 작업 확인에서만 사용할 수 있습니다.CLOUD_RUN_REVISIONRUN유형 대상의 경우 Cloud Run 서비스의 특정 버전입니다.GKE_CLUSTERGKE유형의 대상의 경우 Google Kubernetes Engine 클러스터의 완전히 지정된 리소스 이름입니다(예:projects/p/locations/us-central1/clusters/dev).TARGET_TYPE대상의 특정 런타임 유형으로,
GKE,ANTHOS,RUN입니다. 커스텀 대상의 경우 이 값이 설정되지 않습니다.CLOUD_DEPLOY_LOCATIONCloud Deploy 리소스가 포함된 리전입니다.
CLOUD_DEPLOY_DELIVERY_PIPELINE배포 파이프라인의 ID입니다.
CLOUD_DEPLOY_TARGET타겟의 ID입니다.
CLOUD_DEPLOY_PROJECTCloud Deploy 리소스가 포함된 프로젝트의 Google Cloud 프로젝트 번호입니다.
CLOUD_DEPLOY_PROJECT_ID프로젝트의 Google Cloud 프로젝트 ID입니다.
CLOUD_DEPLOY_RELEASE후크가 실행되는 출시 버전의 ID입니다.
CLOUD_DEPLOY_ROLLOUT후크 작업을 포함하는 출시의 ID입니다.
CLOUD_DEPLOY_JOB_RUN작업의 현재 실행을 나타내는 작업 실행의 ID입니다.
CLOUD_DEPLOY_PHASE배포 후크, 확인 작업 또는 맞춤 렌더링 또는 배포 작업을 포함하는 출시의 단계입니다.
다음 단계
배포 분석을 설정하는 방법을 알아봅니다.
Cloud Deploy 구성 참조에서 분석을 위한 구성 스키마를 확인하세요.
배포 자동화에 대해 자세히 알아보세요.
배포 전략에 대해 자세히 알아보세요.