본문 바로가기

Cloud/GCP

GCP GKE 클러스터 시작/중지 자동화

1. 샘플 소스 클론

git clone https://github.com/GoogleCloudPlatform/cloud-run-samples.git


2. 디렉터리 이동

cd cloud-run-samples/gcloud-report/


3. 시작 자동화, script.sh 내용 수정

gcloud container clusters resize [YOUR-CLUSTER-NAME] --num-nodes=[YOUR-NODE-NUMBER] --zone asia-northeast3-a --quiet
  • quiet: Y 입력 생략


4. IAM 생성 및 권한 부여
GCP > IAM 및 관리자 > IAM > 액세스 권한 부여(Kubernetes 관리자, Cloud Run 관리자 권한 부여)

5. 컨테이너를 빌드하고 Container Registry에 업로드

gcloud builds submit --tag gcr.io/[YOUR_PROJECT_ID]/start-cluster-example


6. cloud run 서비스 배포

gcloud run deploy start-cluster-example \
   --image gcr.io/[YOUR_PROJECT_ID]/start-cluster-example \
   --service-account cluster-automation-identity(YOUR_SERVICE_ACCOUNT_NAME) \
   --no-allow-unauthenticated

>> 리전 선택에서 5번(asia-northeast3)
>> 반환되는 URL을 Cloud Run URL로 사용

7. 중지 자동화, script.sh 수정

gcloud container clusters resize [YOUR_CLUSTER_NAME] --num-nodes=0 --zone asia-northeast3-a --quiet


8. 컨테이너를 빌드하고 Container Registry에 업로드 

gcloud builds submit --tag gcr.io/[YOUR_PROJECT_NAME]/stop-cluster-example


9. cloud run 서비스 배포

gcloud run deploy stop-cluster-example \
   --image gcr.io/[YOUR_PROJECT_ID]/stop-cluster-example \
   --service-account cluster-automation-identity(YOUR_SERVICE_ACCOUNT_NAME) \
   --no-allow-unauthenticated

>> 리전 선택에서 5번(asia-northeast3)
>> 반환되는 URL을 Cloud Run URL로 사용

10. 테스트

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" [YOUR_CLOUD_RUN_URL]

 

11. Cloud Scheduler가 Cloud Run을 호출할 수 있도록 서비스 계정 생성

GCP > IAM 및 관리자 > 서비스 계정 > 서비스 계정 만들기(Cloud Run 관리자 추가)

 

12. Cloud Scheduler 생성

Cloud Scheduler > 작업 만들기(시작, 중지 두 개 만들기)

 

 

참고

https://cloud.google.com/run/docs/tutorials/gcloud?hl=ko