如何使用 Helm 图表使用 google 云构建进行部署
How to use helm charts to deploy using google cloud build
我正处于 Kubernetes 的学习阶段,想为我的项目设置 CI/Cd 管道。我正在使用 google 云并准备好以下元素
- 3节点集群部署在google云端
- Github 已与 google 云构建集成以触发构建。
- 我正在使用
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升级最新的charts
- 因为我是 Kubernetes 的新手,它甚至是 K8s 部署的最佳实践?人们甚至使用 helm 吗?
How can I use helm to upgrade the latest charts.
已经存在默认头盔: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 K8s
deployment? Do people even use helm?
Helm 是管理它的最佳方式,而不是使用任何其他方式。
我建议查看 helm atomic
helm upgrade --install --atomic
如果它在 K8s 中失败,它也会自动回滚部署。
--atomic if set, upgrade process rolls back changes made in case of failed upgrade. The --wait flag will be set
automatically if --atomic is used
额外:
除了固定 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 集群详细信息添加到云构建
- 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 但你可以添加这些 environment 变量到你的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}'
我正处于 Kubernetes 的学习阶段,想为我的项目设置 CI/Cd 管道。我正在使用 google 云并准备好以下元素
- 3节点集群部署在google云端
- Github 已与 google 云构建集成以触发构建。
- 我正在使用
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升级最新的charts
- 因为我是 Kubernetes 的新手,它甚至是 K8s 部署的最佳实践?人们甚至使用 helm 吗?
How can I use helm to upgrade the latest charts.
已经存在默认头盔: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 K8s deployment? Do people even use helm?
Helm 是管理它的最佳方式,而不是使用任何其他方式。
我建议查看 helm atomic
helm upgrade --install --atomic
如果它在 K8s 中失败,它也会自动回滚部署。
--atomic if set, upgrade process rolls back changes made in case of failed upgrade. The --wait flag will be set automatically if --atomic is used
额外:
除了固定 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 集群详细信息添加到云构建
- 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 但你可以添加这些 environment 变量到你的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}'