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를 사용 설정하려면 역할 (
roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAMserviceusage.services.enable권한이 필요합니다. 역할 부여 방법 알아보기.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를 사용 설정하려면 역할 (
roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAMserviceusage.services.enable권한이 필요합니다. 역할 부여 방법 알아보기.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의 알림을 사용하는 분석 작업과 동일하지만 커스텀 작업은 커스텀 컨테이너와 해당 컨테이너에서 실행할 명령어를 참조하는 하나 이상의 작업을 사용하여 측정항목 제공업체의 데이터를 처리합니다.
이 섹션에서는 모니터링 제공업체가 아닌 제공업체를 사용하는 Cloud Deploy 분석 작업 을 구성하는 방법을 설명합니다.Google Cloud
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 목록입니다. 콘솔의 해당 서비스에 대한 Cloud Run 서비스 세부정보에서 이를 확인할 수 있습니다. Google Cloud URL은 Cloud Run 서비스가 성공적으로 배포된 후 Cloud Run에서 생성됩니다. 따라서 이 환경 변수는 배포 후 후크 및 작업 확인에서만 사용할 수 있습니다.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출시에서 배포 후크, 작업 확인 또는 커스텀 렌더링 또는 배포 작업을 포함하는 단계입니다.
다음 단계
배포 분석을 설정하는 방법을 알아보세요.
배포 자동화에 대해 자세히 알아보세요.
배포 전략에 대해 자세히 알아보세요.