cloud-build 部屬 至 GKE服務中
繼上一篇w4560000 - GCP Cloud Build 範例
介紹了將專案build dockerfile 至 GCR後
本文接續 將dockerfile 部屬至 GKE服務
前置作業
- 需預先創建好 GKE相關服務(deployment & service or ingress)
修改專案cloudbuild.yaml
原流程為
- build dockerfile
- push dockerfile to GCR
本文多加一個步驟: 更新在GKE Deployment 服務的Docker Image
流程改為
- build dockerfile
- push dockerfile to GCR
- set image
steps:
# 編譯映像檔
- name: 'gcr.io/cloud-builders/docker'
id: bx-test-project
dir: 'Test_Project/'
env: ['NODE_ENV=$_NODE_ENV']
args:
- 'build'
- '-f'
- 'Dockerfile'
- '--build-arg'
- 'NODE_ENV=$_NODE_ENV'
- '-t'
- 'gcr.io/$PROJECT_ID/bx-test-project:ci-$_NODE_ENV-$SHORT_SHA'
- '.'
# 上傳映像檔
- name: 'gcr.io/cloud-builders/docker'
id: api-push
args:
- 'push'
- 'gcr.io/$PROJECT_ID/bx-test-project:ci-$_NODE_ENV-$SHORT_SHA'
# 部署到GKE
- name: 'gcr.io/cloud-builders/kubectl'
args:
- set
- image
- deployment
- my-first-deployment
- web=gcr.io/$PROJECT_ID/bx-test-project:ci-$_NODE_ENV-$SHORT_SHA
env:
- 'CLOUDSDK_COMPUTE_ZONE=asia-east1-a'
- 'CLOUDSDK_CONTAINER_CLUSTER=loadbalancedcluster'
設定完成後 重新commit專案版本 讓cloud build trigger 即可完成專案版本CI/CD 更新至GKE
補充
- 若查看 cloudbuild trigger資訊發現建置錯誤時 (設定GKE權限不足)
code=403, message=Required “container.clusters.get” permission(s)
則需再設定 cloudbuild 的 gke服務權限
重新修改權限後 再繼續commit版本測試 (將Version 改為 87)
確認是否更新GKE服務
轉載請註明來源,若有任何錯誤或表達不清楚的地方,歡迎在下方評論區留言,也可以來信至 leozheng0621@gmail.com
如果文章對您有幫助,歡迎斗內(donate),請我喝杯咖啡