You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GCP GKE中通过Helm的values.yaml部署Airflow自定义Docker镜像

问题解答

1. helm upgrade 自动使用自定义镜像的实现方法

可以实现,操作逻辑如下:

  • 每次构建自定义镜像时,给镜像设置唯一且固定的标签,不要一直用latest标签,否则Kubernetes会默认使用节点上缓存的镜像,不会触发更新。推荐用代码commit哈希、构建时间作为标签,示例构建命令:
    docker build -t airflow-custom:$(git rev-parse --short HEAD) .
    
  • 在Airflow官方Helm Chart的values.yaml中提前配置好镜像相关参数:
    defaultAirflowRepository: 你的镜像仓库地址
    defaultAirflowTag: 你的镜像标签
    
  • 每次构建完新镜像后,先更新values.yaml里的defaultAirflowTag值为新的镜像标签,再执行helm upgrade命令即可自动完成镜像更新:
    helm upgrade airflow apache-airflow/airflow -f values.yaml
    

如果想要更自动化,可以写一个简单的Shell脚本,串联镜像构建、打标签、更新values.yaml、执行helm upgrade的全流程。

2. GKE使用自定义镜像的前置要求

你必须把本地构建的镜像上传到可被GKE集群访问的镜像仓库,不能直接引用本地镜像,原因如下:

  • 你看到的kind集群kind load命令是特殊用法:kind是运行在本地主机上的Kubernetes集群,和你本地Docker环境共享主机资源,所以可以直接把本地镜像导入到kind集群节点中。但GKE是运行在GCP云端的托管集群,节点和你的本地开发环境完全网络隔离,无法访问你本地机器上存储的镜像。
  • 你不需要一定上传到Docker Hub,优先推荐使用GCP自带的Artifact Registry或者Container Registry,和GKE兼容性更好,同项目下的GKE集群默认拥有这两个镜像仓库的拉取权限,不需要额外配置拉取密钥。
    操作示例(以GCR为例):
  1. 给本地镜像打GCR标签,替换为你自己的GCP项目ID:
docker tag airflow-custom:1.0.0 gcr.io/你的GCP项目ID/airflow-custom:1.0.0
  1. 推送镜像到GCR:
docker push gcr.io/你的GCP项目ID/airflow-custom:1.0.0
  1. 调整values.yaml的镜像配置即可:
defaultAirflowRepository: gcr.io/你的GCP项目ID/airflow-custom
defaultAirflowTag: "1.0.0"

内容的提问来源于stack exchange,提问作者Halc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:06:05