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

在K8s Helm中配置Airflow SSL证书参数报错求助

问题描述

在Kubernetes环境中使用Helm 3.2.10部署Apache Airflow 2.6.2,已通过命令kubectl create secret generic web-cert-and-key --from-file=server.key --from-file=server.crt创建证书密钥Secret,尝试在Values.yaml中通过env字段配置web_server_ssl_cert和web_server_ssl_key以映射到airflow.cfg,配置内容如下:

env: 
  - name: web_server_ssl_cert
    valueFrom:
      secretKeyRef:
        name: web-cert-and-key
        key: server.crt
  - name: web_server_ssl_cert
    valueFrom:
      secretKeyRef:
        name: web-cert-and-key
        key: server.key

执行Helm升级时出现Schema校验错误:

Error: UPGRADE FAILED: values don't meet the specifications of the schema(s) in the following chart(s):
airflow:
- webserver.env.0: value is required
- webserver.env.0: Additional property valueFrom is not allowed
- webserver.env.1: value is required
- webserver.env.1: Additional property valueFrom is not allowed

正确配置方式

1. 挂载证书Secret到Webserver容器

在Values.yaml中为webserver添加额外的Volume和VolumeMount,将Secret挂载到容器内的指定路径:

webserver:
  extraVolumes:
    - name: web-cert-volume
      secret:
        secretName: web-cert-and-key
  extraVolumeMounts:
    - name: web-cert-volume
      mountPath: /opt/airflow/ssl/
      readOnly: true

2. 配置Airflow Webserver的SSL参数

通过webserver.config字段直接设置airflow.cfg中的SSL相关参数,指向挂载的证书文件路径:

webserver:
  config:
    web_server_ssl_cert: "/opt/airflow/ssl/server.crt"
    web_server_ssl_key: "/opt/airflow/ssl/server.key"

3. (可选)调整Service端口

如果需要对外暴露HTTPS服务,可调整webserver的Service配置,将端口映射为443:

webserver:
  service:
    port: 443
    targetPort: 8080

核心原因说明

原配置错误的本质是Airflow Helm Chart的Schema规定webserver.env仅支持name和value字段,不允许使用valueFrom引用Secret。因此必须通过挂载Secret到容器路径,再在Airflow配置中指定路径的方式实现SSL配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:05:16