voi*_*ila 2 kubernetes kubernetes-helm
我正处于 Kubernetes 的学习阶段,想要为我的项目设置 CI/Cd 管道。我正在使用谷歌云并准备好以下元素
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"]
Run Code Online (Sandbox Code Playgroud)
我的问题是
如何使用 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']
Run Code Online (Sandbox Code Playgroud)
要管理图表版本,您应该检查: https: //cloud.google.com/artifact-registry/docs/helm/manage-charts
Helm 云构建器Github
由于我是 Kubernetes 新手,这甚至是 K8s 部署的最佳实践?人们甚至使用头盔吗?
Helm 是管理它的最佳方式,而不是使用任何其他方式。
我建议检查一下helm atomic
helm upgrade --install --atomic
Run Code Online (Sandbox Code Playgroud)
如果 K8s 中失败,它也会自动回滚部署。
--atomic 如果设置,升级过程将回滚在升级失败时所做的更改。如果使用 --atomic,则将自动设置 --wait 标志
额外的 :
您还可以使用变量,该模板也可以跨存储库的分支工作,而不是固定 GCR 名称。
- 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']
Run Code Online (Sandbox Code Playgroud)
更新 :
将 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}'
Run Code Online (Sandbox Code Playgroud)
我正在使用kubectl apply,但您可以将这些环境 变量添加到您的helm步骤中。
完整文件
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}'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3221 次 |
最近记录: |