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),請我喝杯咖啡