gpt4 book ai didi

kubernetes - 如何使用 Helm Charts 使用 google cloud build 进行部署

转载 作者:行者123 更新时间:2023-12-03 08:13:28 25 4
gpt4 key购买 nike

我正处于 Kubernetes 的学习阶段,想要为我的项目设置 CI/Cd 管道。我正在使用 Google Cloud,并且已准备好以下元素

  1. 3 个节点集群部署在 Google Cloud 上
  2. Github 已与 google cloud build 集成以触发构建。
  3. 我使用 helm 来维护我的 K8s 模板。
  4. 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"]

我的问题是

  1. 如何使用 helm 升级最新的图表。
  2. 由于我是 Kubernetes 新手,这甚至是 K8s 部署的最佳实践?人们甚至使用 helm 吗?

最佳答案

How can I use helm to upgrade the latest charts.

已经存在默认的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

As I am new to Kubernetes, it is even the best practice for K8sdeployment? Do people even use helm?

Helm 是管理它的最佳方式,而不是使用任何其他方式。

我建议查看helmatomic

helm upgrade --install --atomic

如果 K8s 中失败,它也会自动回滚部署。

--atomic if set, upgrade process rolls back changes made in case of failed upgrade. The --wait flag will be setautomatically if --atomic is used

Read more

额外:

除了修复 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']

更新:

将 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应用,但您可以将这些环境变量添加到您的helm 步骤。

File location

完整文件

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}'

关于kubernetes - 如何使用 Helm Charts 使用 google cloud build 进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70123319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com