GCP Cloud Build 部署至 K8S中

  1. cloud-build 部屬 至 GKE服務中
    1. 前置作業
    2. 修改專案cloudbuild.yaml
    3. 補充

cloud-build 部屬 至 GKE服務中

繼上一篇w4560000 - GCP Cloud Build 範例
介紹了將專案build dockerfile 至 GCR後
本文接續 將dockerfile 部屬至 GKE服務

前置作業

  • 需預先創建好 GKE相關服務(deployment & service or ingress)

修改專案cloudbuild.yaml

原流程為

  1. build dockerfile
  2. push dockerfile to GCR

本文多加一個步驟: 更新在GKE Deployment 服務的Docker Image
流程改為

  1. build dockerfile
  2. push dockerfile to GCR
  3. 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

補充

  1. 若查看 cloudbuild trigger資訊發現建置錯誤時 (設定GKE權限不足)
    code=403, message=Required “container.clusters.get” permission(s)
    

則需再設定 cloudbuild 的 gke服務權限

  1. 重新修改權限後 再繼續commit版本測試 (將Version 改為 87)

  2. 確認是否更新GKE服務


轉載請註明來源,若有任何錯誤或表達不清楚的地方,歡迎在下方評論區留言,也可以來信至 leozheng0621@gmail.com
如果文章對您有幫助,歡迎斗內(donate),請我喝杯咖啡

斗內💰

×

歡迎斗內

github