我正處于 Kubernetes 的學習階段,想為我的專案設定 CI/Cd 管道。我正在使用谷歌云并準備好以下元素
- 3 Node集群部署在谷歌云上
- Github 已經與谷歌云構建集成來觸發構建。
- 我
helm用來維護我的 K8s 模板。 cloudbuilld.yaml開發用于編譯 docker 映像并將其推送到 google 容器注冊表。
我被困在 - 一旦我的 cloudbuild.yaml 完成構建 docker 映像并將其推送到注冊表,我該如何使用 helm 升級圖表?
這是我的樣本 cloudbuild.yaml
steps:
- name: 'gcr.io/cloud-builders/docker'
args: ["build", "-t", "gcr.io/kubernetes-amit-test/github.com/0xvoila/apache/phoenix:$SHORT_SHA", "."]
- name: "gcr.io/cloud-builders/docker"
args: ["push", "gcr.io/kubernetes-amit-test/github.com/0xvoila/apache/phoenix:$SHORT_SHA"]
- name: "alpine/helm:latest". --- It is not working
args: ["helm","upgrade","mychart","image", "gcr.io/kubernetes-amit-test/github.com/0xvoila/apache/phoenix:$SHORT_SHA"]
我的問題是
- 如何使用 helm 升級最新的圖表。
- 由于我是 Kubernetes 的新手,它甚至是 K8s 部署的最佳實踐嗎?人們甚至使用頭盔嗎?
uj5u.com熱心網友回復:
如何使用 helm 升級最新的圖表。
已經存在默認的 helm :gcr.io/$PROJECT_ID/cloud-builders-helm
- name: 'gcr.io/$PROJECT_ID/cloud-builders-helm'
args: ['upgrade', '--install', 'filebeat', '--namespace', 'filebeat', 'stable/filebeat']
要管理圖表版本,您應該檢查:https : //cloud.google.com/artifact-registry/docs/helm/manage-charts
Helm 云構建器Github
由于我是 Kubernetes 的新手,它甚至是 K8s 部署的最佳實踐嗎?人們甚至使用頭盔嗎?
Helm 是管理它的最佳方式,而不是使用任何其他方式。
我建議檢查一下 helm atomic
helm upgrade --install --atomic
如果在 K8s 中失敗,它也會自動回滾部署。
--atomic 如果設定,升級程序將回滾在升級失敗的情況下所做的更改。如果使用--atomic,將自動設定--wait 標志
閱讀更多
額外的 :
除了固定 GCR 名稱之外,您還可以使用該模板將在跨 repo的分支中作業的變數。
- id: 'build test core image'
name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/$PROJECT_ID/$REPO_NAME/$BRANCH_NAME:$SHORT_SHA', '.']
- id: 'push test core image'
name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/$PROJECT_ID/$REPO_NAME/$BRANCH_NAME:$SHORT_SHA']
更新 :
將 GKE 集群詳細資訊添加到 Cloud build
- name: 'gcr.io/cloud-builders/kubectl'
args: ['apply', '-f', 'deployment.yaml']
env:
- 'CLOUDSDK_COMPUTE_ZONE=${_CLOUDSDK_COMPUTE_ZONE}'
- 'CLOUDSDK_CONTAINER_CLUSTER=${_CLOUDSDK_CONTAINER_CLUSTER}'
我正在使用kubectl apply,但您可以將這些環境 變數添加到您的掌舵步驟中。
檔案位置
完整檔案
substitutions:
_CLOUDSDK_COMPUTE_ZONE: us-central1-c # default value
_CLOUDSDK_CONTAINER_CLUSTER: standard-cluster-1 # default value
steps:
- id: 'set test core image in yamls'
name: 'ubuntu'
args: ['bash','-c','sed -i "s,TEST_IMAGE_NAME,gcr.io/$PROJECT_ID/$REPO_NAME/$BRANCH_NAME:$SHORT_SHA," deployment.yaml']
- name: 'gcr.io/cloud-builders/kubectl'
args: ['apply', '-f', 'deployment.yaml']
env:
- 'CLOUDSDK_COMPUTE_ZONE=${_CLOUDSDK_COMPUTE_ZONE}'
- 'CLOUDSDK_CONTAINER_CLUSTER=${_CLOUDSDK_CONTAINER_CLUSTER}'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/370062.html
下一篇:當從dockerhub(公共存盤庫)使用影像時,部署的knative服務因RevisionMissing失敗而失敗
