배포 후 애플리케이션 확인
이 빠른 시작에서는 배포 파이프라인의 일부로 Cloud Deploy를 사용하여 배포된 애플리케이션을 확인하는 방법을 보여줍니다.
이 빠른 시작에서 다루는 작업은 다음과 같습니다.
하나의 GKE 클러스터 또는 하나의 Cloud Run 서비스를 만듭니다.
GKE 연결 클러스터에서도 배포 확인을 사용할 수 있지만 이 빠른 시작에서는 GKE와 Cloud Run만 사용합니다.
Cloud Deploy 배포 파이프라인 및 배포 대상을 정의합니다.
배포 파이프라인에는 한 단계만 포함되며 대상 하나만 사용됩니다.
stage스탠자에서 배포 확인 구성을 정의합니다.출시 버전에 필요한 Skaffold 구성과 Kubernetes 매니페스트 또는 Cloud Run 서비스 정의를 만듭니다.
대상에 자동으로 배포되는 출시 버전을 만듭니다.
콘솔의 Cloud Deploy 출시 세부정보 페이지를 사용하여 Cloud Build 로그의 확인 결과를 봅니다. Google Cloud
시작하기 전에
- 계정에 로그인합니다. Google Cloud 를 처음 사용하는 경우 Google Cloud, 계정을 만들어 실제 시나리오에서 제품이 어떻게 작동하는지 평가하세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Deploy, Cloud Build, GKE, Cloud Run, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Google Cloud CLI를 설치합니다.
-
외부 ID 공급업체(IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
-
gcloud CLI를 초기화하려면, 다음 명령어를 실행합니다.
gcloud init - 기본 Compute Engine 서비스 계정에 충분한 권한이 있는지 확인합니다.
서비스 계정에 이미 필요한 권한이 있을 수 있습니다. 기본 서비스 계정의 자동 역할 부여를 중지한 프로젝트를 위해 포함된 단계입니다.
- 먼저
clouddeploy.jobRunner역할을 추가합니다.gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/clouddeploy.jobRunner" - 특정 런타임의 개발자 역할을 추가합니다.
- GKE의 경우:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/container.developer" - Cloud Run의 경우:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/run.developer" -
런타임에 배포할 수 있는
actAs권한이 포함된iam.serviceAccountUser역할을 추가합니다.gcloud iam service-accounts add-iam-policy-binding $(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --member=serviceAccount:$(gcloud projects describe PROJECT_ID \ --format="value(projectNumber)")-compute@developer.gserviceaccount.com \ --role="roles/iam.serviceAccountUser" \ --project=PROJECT_ID
CLI가 이미 설치되어 있으면 최신 버전으로 실행 중인지 확인합니다.
gcloud components update
런타임 환경 만들기
Cloud Run에 배포하는 경우 이 명령어를 건너뛸 수 있습니다.
GKE의 경우 기본 설정으로 deploy-verification-cluster 클러스터 하나를 만듭니다. 클러스터의 Kubernetes API 엔드포인트는 공개 인터넷에서 네트워크에 연결할 수 있어야 합니다. GKE 클러스터는 기본적으로 외부에서 액세스할 수 있습니다.
gcloud container clusters create-auto deploy-verification-cluster \
--project=PROJECT_ID \
--region=us-central1
전달 파이프라인 및 대상 만들기
파이프라인 및 대상을 파일 하나 또는 별도의 파일로 정의할 수 있습니다. 이 빠른 시작에서는 단일 파일을 만듭니다.
터미널 창을 엽니다.
새 디렉터리를 만들어 해당 디렉터리로 이동합니다.
GKE
mkdir deploy-verification-gke-quickstart cd deploy-verification-gke-quickstartCloud Run
mkdir deploy-verification-run-quickstart cd deploy-verification-run-quickstart배포 파이프라인과 대상 정의를 만듭니다.
GKE
deploy-verification-gke-quickstart디렉터리에서 다음 콘텐츠로 새 파일clouddeploy.yaml을 만듭니다.apiVersion: deploy.cloud.google.com/v1 kind: DeliveryPipeline metadata: name: deploy-verification-demo-app-gke-1 description: main application pipeline serialPipeline: stages: - targetId: verify-staging profiles: [] strategy: standard: verify: tasks: - type: container image: ubuntu command: ["/bin/sh"] args: ["-c", 'echo "Your test or tests would go here."' ] --- apiVersion: deploy.cloud.google.com/v1 kind: Target metadata: name: verify-staging description: verification staging cluster gke: cluster: projects/PROJECT_ID/locations/us-central1/clusters/deploy-verification-clusterCloud Run
deploy-verification-run-quickstart디렉터리에서 다음 콘텐츠로 새 파일clouddeploy.yaml을 만듭니다.apiVersion: deploy.cloud.google.com/v1 kind: DeliveryPipeline metadata: name: deploy-verification-demo-app-run-1 description: main application pipeline serialPipeline: stages: - targetId: verify-staging profiles: [] strategy: standard: verify: tasks: - type: container image: ubuntu command: ["/bin/sh"] args: ["-c", 'echo "Your test or tests would go here."' ] --- apiVersion: deploy.cloud.google.com/v1 kind: Target metadata: name: verify-staging description: staging Run service run: location: projects/PROJECT_ID/locations/us-central1이 파일에는 배포 파이프라인의
strategy정의 내에verify스탠자가 포함되어 있습니다. 애플리케이션을 배포한 후 실행할 컨테이너와 명령어를 정의합니다. 여기에서는 Ubuntu 컨테이너를 배포하고 간단한echo명령어를 실행합니다. 로그에서 이 명령어 결과를 볼 수 있습니다. 보다 사실적인 시나리오에서는 배포된 애플리케이션에 대한 테스트를 실행합니다.Cloud Deploy 서비스에 파이프라인 및 대상을 등록합니다.
gcloud deploy apply --file=clouddeploy.yaml --region=us-central1 --project=PROJECT_ID
이제 애플리케이션을 배포하고 배포를 확인할 수 있는 대상 하나가 포함된 배포 파이프라인이 있습니다.
파이프라인 및 대상을 확인합니다.
콘솔에서 Cloud Deploy 배포 파이프라인 페이지로 이동하여 사용 가능한 배포 파이프라인 목록을 확인합니다. Google Cloud
방금 만든 배포 파이프라인이 표시되고 대상 하나가 대상 열에 나열됩니다.

Skaffold 구성 파일 및 애플리케이션 매니페스트 만들기
Cloud Deploy는 Skaffold를 사용하여 샘플 앱을 대상에 배포하는 데 사용할 매니페스트를 식별합니다.
다음 콘텐츠로
skaffold.yaml이라는 파일을 만듭니다.GKE
apiVersion: skaffold/v4beta7 kind: Config manifests: rawYaml: - k8s-pod.yaml deploy: kubectl: {}Cloud Run
apiVersion: skaffold/v4beta7 kind: Config manifests: rawYaml: - service.yaml deploy: cloudrun: {}이 구성 파일에 대한 자세한 내용은
skaffold.yaml참조 를 확인하세요.Cloud Run용 서비스 정의 또는 GKE용 Kubernetes 매니페스트와 같은 애플리케이션의 정의를 만듭니다.
GKE
다음 콘텐츠로
k8s-pod.yaml이라는 파일을 만듭니다.apiVersion: v1 kind: Pod metadata: name: my-verification-pod spec: containers: - name: nginx image: my-app-image이 파일은 애플리케이션을 배포하기 위해 클러스터에 적용되는 기본 Kubernetes 매니페스트입니다. 배포할 컨테이너 이미지는 여기에 자리표시자
my-app-image로 설정되며, 출시 버전을 만들 때 특정 이미지로 대체됩니다.Cloud Run
다음 콘텐츠로
service.yaml이라는 파일을 만듭니다.apiVersion: serving.knative.dev/v1 kind: Service metadata: name: my-verification-run-service spec: template: spec: containers: - image: my-app-image이 파일은 애플리케이션을 배포하는 데 사용되는 기본 Cloud Run 서비스 정의입니다. 배포할 컨테이너 이미지는 여기에 자리표시자
my-app-image로 설정되며, 출시 버전을 만들 때 특정 이미지로 대체됩니다.
출시 버전 만들기
출시 버전은 배포되는 변경사항을 나타내는 중앙 Cloud Deploy 리소스입니다. 배포 파이프라인은 해당 출시의 수명 주기를 정의합니다. 수명 주기에 대한 자세한 내용은 Cloud Deploy 서비스 아키텍처를 참조하세요.
GKE
deploy-verification-gke-quickstart
디렉터리에서 다음 명령어를 실행하여 배포할 컨테이너
이미지를 나타내는 release 리소스를 만듭니다.
gcloud deploy releases create test-release-001 \
--project=PROJECT_ID \
--region=us-central1 \
--delivery-pipeline=deploy-verification-demo-app-gke-1 \
--images=my-app-image=gcr.io/google-containers/nginx@sha256:f49a843c290594dcf4d193535d1f4ba8af7d56cea2cf79d1e9554f077f1e7aaa
매니페스트의
자리표시자 (my-app-image)를 특정 SHA 인증 이미지로 바꾸는 데 사용하는
--images= 플래그,
를 확인합니다. Google은 이러한 방식으로 매니페스트를
템플릿화하고 출시 버전을 만들 때 SHA 인증 이미지
이름을 사용하는 것이 좋습니다.
Cloud Run
deploy-verification-run-quickstart
디렉터리에서 다음 명령어를 실행하여 배포할 컨테이너
이미지를 나타내는 release 리소스를 만듭니다.
gcloud deploy releases create test-release-001 \
--project=PROJECT_ID \
--region=us-central1 \
--delivery-pipeline=deploy-verification-demo-app-run-1 \
--images=my-app-image=us-docker.pkg.dev/cloudrun/container/hello@sha256:95ade4b17adcd07623b0a0c68359e344fe54e65d0cb01b989e24c39f2fcd296a
서비스 정의의
자리표시자 (my-app-image)를 특정 SHA 인증 이미지로 바꾸는 데 사용하는
--images= 플래그를 확인합니다. Google은 이러한 방식으로 서비스 정의를
템플릿화하고 출시 버전을 만들 때
SHA 인증 이미지 이름을 사용하는 것이 좋습니다.
모든 출시 버전과 마찬가지로 (--disable-initial-rollout)
Cloud Deploy도 자동으로
출시 리소스를 만듭니다. 애플리케이션은 이 배포 파이프라인에 구성된 대상 하나에 자동으로 배포됩니다.
배포 파이프라인에 지정한 확인 작업은 애플리케이션이 배포된 후에 이 출시의 일부로 실행됩니다.
콘솔에서 결과 보기 Google Cloud
몇 분 후에 출시 버전이 대상 런타임에 배포됩니다.
구성된 확인 작업(예: 목적)은 문자열을 Cloud Build 로그에 출력합니다. 해당 로그를 보고 확인이 예상대로 작동하는지 확인할 수 있습니다.
콘솔에서 Cloud Deploy 배포 파이프라인 페이지로 이동하여 배포 파이프라인 ('deploy-verification-demo-app-gke-1' 또는 'deploy-verification-demo-app-run-1')을 봅니다. Google Cloud
배포 파이프라인 이름('deploy-verification-demo-app-gke-1' 또는 'deploy-verification-demo-app-run-1')을 클릭합니다.
파이프라인 시각화에 앱의 배포 상태가 표시됩니다. 파이프라인에는 단계가 하나뿐이므로 시각화에 노드가 하나만 표시됩니다.

출시 버전은 배포 파이프라인 세부정보의 출시 탭에 표시됩니다.
배포 파이프라인 세부정보에서 출시 탭을 클릭합니다.
출시 이름을 클릭하여 출시 세부정보를 봅니다.

확인 이 작업으로 나열됩니다.
확인을 클릭합니다.
작업 실행 로그가 표시됩니다.
로그 항목 목록을 아래로 스크롤하여
verification-test를 찾고 클릭합니다.
textPayload를 확인합니다. 이 문자열은Verify스탠자에 구성된 문자열입니다. 배포 파이프라인
삭제
이 페이지에서 사용한 리소스 비용이 Google Cloud 계정에 청구되지 않도록 하려면 다음 단계를 수행합니다.
GKE 클러스터나 Cloud Run 서비스를 삭제합니다.
GKE
gcloud container clusters delete deploy-verification-cluster --region=us-central1 --project=PROJECT_IDCloud Run
gcloud run services delete my-verification-run-service --region=us-central1 --project=PROJECT_ID배포 파이프라인, 대상, 출시 버전 및 출시를 삭제합니다.
gcloud deploy delete --file=clouddeploy.yaml --force --region=us-central1 --project=PROJECT_IDCloud Deploy에서 만든 Cloud Storage 버킷을 삭제합니다.
하나는
_clouddeploy로 끝나고 다른 하나는[region].deploy-artifacts.[project].appspot.com입니다.
빠른 시작을 완료하셨습니다.