
scholarshipowl/gcloud-helm-kogcloud-helm-ko是一个集成了Google Cloud SDK、Helm3、Ko及helmfile工具的Docker镜像,旨在简化CI/CD流水线中与GCP(Google Cloud Platform)和Kubernetes相关的构建、认证及部署流程。通过整合这些工具,用户可在CI环境中一站式完成Go应用容器化(Ko)、GCP资源操作(Google Cloud SDK)及Kubernetes应用部署(Helm3/helmfile)。
GOOGLE_APPLICATION_CREDENTIALS:当设置此变量时,镜像将使用其指定的凭证文件初始化GCP认证。以下环境变量用于配置GKE集群信息,简化与Kubernetes集群的对接:
CLOUDSDK_CONTAINER_CLUSTER:GKE集群名称。CLOUDSDK_COMPUTE_ZONE:GKE集群所在区域(如us-central1-a)。CLOUDSDK_CORE_PROJECT:GCP项目ID。在Gitlab-CI中使用时,需在.gitlab-ci.yaml中定义相关变量并配置作业阶段。
yamlvariables: CLOUDSDK_COMPUTE_ZONE: {{区域}} # GKE集群所在区域,如us-central1-a CLOUDSDK_CORE_PROJECT: {{项目ID}} # GCP项目ID CLOUDSDK_CONTAINER_CLUSTER: {{集群名称}} # GKE集群名称 DEPLOYMENT_NAME: {{部署名称}} # Helm部署名称 KO_DOCKER_REPO: {{Go容器仓库前缀}} # Ko构建的容器镜像仓库前缀(如gcr.io/[项目ID]) DOCKER_REPO: {{其他容器仓库前缀}} # 非Go应用的容器镜像仓库前缀 NAMESPACE: {{命名空间}} # Kubernetes命名空间
使用Ko构建Go应用容器镜像:
yamlgo-build: stage: build image: scholarshipowl/gcloud-helm-ko script: ko publish -B -t ${CI_COMMIT_SHORT_SHA} . # -B:构建平台无关镜像,-t:指定标签为Git提交短SHA
说明:此阶段将创建镜像 ${KO_DOCKER_REPO}/go-cmd:${CI_COMMIT_SHORT_SHA}(go-cmd为应用名称,由Ko根据项目自动生成)。
使用Helm3将应用部署到GKE集群:
yamldeploy: stage: deploy image: scholarshipowl/gcloud-helm-ko script: # 注意:在k8s runner中存在入口点(entrypoint)被覆盖的问题,需手动执行入口点脚本 # 若使用其他类型runner,可移除此行 # 参考:[***] - /docker-entrypoint.sh # 执行Helm部署命令 - helm upgrade ${DEPLOYMENT_NAME} chart/ --install # 若部署不存在则安装,存在则升级 --set image.tag=${CI_COMMIT_SHORT_SHA} # 设置镜像标签为构建阶段的Git提交短SHA --namespace ${NAMESPACE} # 指定Kubernetes命名空间
说明:此阶段通过helm upgrade --install命令将chart/目录下的Helm chart部署到${CLOUDSDK_CONTAINER_CLUSTER}集群的${NAMESPACE}命名空间。
镜像内置helmfile工具(helmfile文档),用于管理多Helm chart的部署配置。通过编写helmfile.yaml,可实现更复杂的Helm chart版本控制、依赖管理及多环境部署。
yamldeploy: stage: deploy image: scholarshipowl/gcloud-helm-ko script: - helmfile -e prod apply # 应用prod环境的helmfile配置 --set imageTag=${CI_COMMIT_SHORT_SHA} # 覆盖镜像标签为Git提交短SHA


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务