Apache Airflow 支持版本全解析版本生命周期、Python/Kubernetes 支持策略与 EOL 管理【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflowApache Airflow 是一套用于以编程方式编写、调度和监控工作流的平台其版本生命周期与依赖环境Python、Kubernetes的支持策略直接决定了生产环境的升级节奏与安全基线。本文以 Airflow 官方文档 supported-versions.rst 为核心骨架结合仓库中负责维护该文档与版本矩阵的自动化脚本 scripts/ci/prek/supported_versions.py系统讲解 Airflow 各主版本的当前状态、支持规则、Python 与 Kubernetes 的适配原则以及从源码与 CI 视角理解版本支持的实际执行机制帮助你在部署与升级前做出准确判断。版本生命周期Version Life CycleApache Airflow 的版本生命周期是理解该用哪个版本、何时必须升级的第一把钥匙。仓库的 README.md 与 supported-versions.rst 中维护着同一张自动生成的版本状态表其数据源统一收敛在 scripts/ci/prek/supported_versions.py 的SUPPORTED_VERSIONS常量中。下表即为当前仓库中记录的 Airflow 版本生命周期全貌VersionCurrent Patch/MinorStateFirst ReleaseLimited MaintenanceEOL/Terminated33.3.1MaintenanceApr 22, 2025TBDTBD22.11.2EOLDec 17, 2020Oct 22, 2025Apr 22, 20261.101.10.15EOLAug 27, 2018Dec 17, 2020June 17, 20211.91.9.0EOLJan 03, 2018Aug 27, 2018Aug 27, 20181.81.8.2EOLMar 19, 2017Jan 03, 2018Jan 03, 20181.71.7.1.2EOLMar 28, 2016Mar 19, 2017Mar 19, 2017状态字段的含义Current Patch/Minor该主版本系列当前最新的补丁或次版本号。例如 Airflow 3 系列当前为 3.3.1Airflow 2 系列最终停留在 2.11.2进入 EOL 后不再产生新版本。State版本当前所处的支持状态分为Maintenance维护期与EOL生命周期终止两种。First Release该主版本系列的首次发布时间。Limited Maintenance进入有限维护的时间点。处于该阶段的版本仅接收安全修复与关键缺陷修复security and critical bug fixes only不再新增功能。EOL/Terminated生命周期终止时间。EOL 版本不会获得任何修复或支持will not get any fixes or support包括安全补丁。以表格数据为例Airflow 3 于 2025 年 4 月 22 日首次发布目前处于 Maintenance 阶段其有限维护与 EOL 时间均为 TBD待定Airflow 2 于 2020 年 12 月 17 日发布2025 年 10 月 22 日进入有限维护最终在 2026 年 4 月 22 日终止生命周期。1.x 各系列1.10、1.9、1.8、1.7均已全部 EOL其中 1.10 是最后退出历史舞台的 1.x 版本。版本支持的建议文档给出了明确的选型建议强烈推荐安装具有更丰富特性的最新 Airflow 版本We highly recommend installing the latest Airflow release which has richer features。这意味着在条件允许时应优先跟进处于 Maintenance 状态的 Airflow 3而不是停留在已进入 EOL 的旧版本上因为 EOL 版本既得不到安全补丁也无法获得社区修复。版本表的自动生成机制单源数据 双文档同步值得关注的是上述生命周期表并非手工维护而是由仓库脚本自动生成的。在 supported-versions.rst 中表格前后分别有.. Beginning of auto-generated table与.. End of auto-generated table标记README 的 Version Life Cycle 小节 也有对应的 HTML 注释标记。执行 scripts/ci/prek/supported_versions.py 时脚本的核心逻辑如下定义表头HEADERSVersion、Current Patch/Minor、State、First Release、Limited Maintenance、EOL/Terminated与SUPPORTED_VERSIONS数据元组这是版本信息的单一事实来源single source of truth通过replace_text_between函数分别读取仓库根目录下的README.md与airflow-core/docs/installation/supported-versions.rst定位注释标记之间的区域使用tabulate库将数据分别格式化为 GitHub 风格表格README与 reStructuredText 风格表格文档替换到标记之间完成同步更新。从源码结构看SUPPORTED_VERSIONS元组的顺序即为表格行顺序脚本本身带有# /// script声明requires-python 3.10,3.11依赖tabulate0.9.0可以按 PEP 723 内联脚本元数据方式直接运行。这一设计保证了版本矩阵在文档、README 与发布流程之间的一致性也解释了为何文档中的表格会在每个版本发布时自动刷新。对 Python 与 Kubernetes 版本的支持规则对于 Airflow 2.0 版本项目对 Python 与 Kubernetes 的支持遵循一套明确的约定规则其依据分别是官方 Python 开发指南中的分支状态说明Python Developers Guide与 Kubernetes 的版本偏斜策略Kubernetes version skew policy。三条核心规则如下规则一上游版本 EOL 即放弃支持当 Python 或 Kubernetes 的某个版本到达 EOL 时Airflow 会放弃对该版本的支持。具体执行时机为在对应 EOL 日期之后立即在 main 分支中移除该版本的支持该移除动作在下一个新 MINOR若无新的 MINOR 则为 MAJOR版本发布时正式生效。文档给出的示例是 Python 3.6社区在其 EOL 日期2021 年 12 月 23 日之后于 main 分支中移除支持而此后发布的第一个 MAJOR 或 MINOR 版本中不再包含对它的支持。这一规则意味着即便你的环境中 Python/Kubernetes 版本仍在运行只要其上游已 EOL后续 Airflow 版本就不再为其兜底需要提前规划运行环境的升级。规则二最旧的受支持版本是默认版本在所有受支持的 Python/Kubernetes 版本中最旧的那个被作为默认default版本。这里的默认仅具有特定含义它用于 CI PR 中的冒烟测试smoke tests即 CI 使用该默认版本以及 Docker Hub 上的默认参考镜像运行测试。文档记录了一个具体的迁移实例当时的apache/airflow:latest与apache/airflow:2.10.2镜像是 Python 3.8 镜像而在 2024-10-14 之后发布的第一个 MINOR/MAJOR 版本中它们将变为 Python 3.9 镜像——这正是最旧受支持版本成为默认规则的直接体现。从当前仓库的 CI 常量看默认 Python 版本已演进为 common_prek_utils.py 中的DEFAULT_PYTHON_MAJOR_MINOR_VERSION 3.10而允许的 Python 版本列表通过read_allowed_python_major_minor_versions()从global_constants.py的ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS统一读取作为版本支持的单一事实来源。规则三新版本官方发布后尽快接入当 Python 或 Kubernetes 的新版本正式发布后Airflow 会在 main 分支中尽快加入支持时机取决于新版本能否在 CI 流水线中正常工作。由于依赖项尤其是 Python 生态的第三方库通常需要时间适配新版本这一接入可能不会立即发生但一旦 CI 验证通过就会基于可用的 CI 配置发布对应的新镜像与支持声明。从安装前置条件看版本支持的落地版本支持策略最终会落到具体的安装前置条件中。prerequisites.rst 列出了当前仓库Airflow 3 开发线实际支持并测试的环境版本Python3.10、3.11、3.12、3.13、3.14SQLite3.15.0作为元数据库的轻量选择Kubernetes1.30、1.31、1.32、1.33、1.34、1.35可见当前受支持的 Python 版本已整体提升到 3.10 及以上Kubernetes 版本覆盖 1.30 至 1.35。结合最旧版本为默认的规则可以推断当前 CI 冒烟测试默认基于 Python 3.10 运行而scripts/ci/prek/update_tested_versions.py等脚本会依据ALLOWED_PYTHON_MAJOR_MINOR_VERSIONS等常量自动更新受测试的版本矩阵与read_allowed_python_major_minor_versions()、read_allowed_kubernetes_versions()从ALLOWED_KUBERNETES_VERSIONS读取等函数保持一致。安装前务必核对你的 Python 与 Kubernetes 环境是否落在上述区间内否则将得不到官方支持。版本支持策略的工程实践建议结合文档规则与仓库实现可以给出以下可落地的实践建议以生命周期状态驱动升级决策运行中的 Airflow 若已进入 EOL例如 2.x 将于 2026 年 4 月 22 日终止应立即规划升级处于 Maintenance 的 3.x 是当前首选。升级路径可参考 upgrading_to_airflow3.rst 与 upgrading.rst。先检查运行环境再升级升级前确认目标版本的 Python/Kubernetes 前置条件见 prerequisites.rst避免升级后落入不受支持的组合。理解默认版本的语义边界CI 冒烟测试只覆盖默认版本组合生产环境若使用非默认的受支持版本建议在 CI 中自行补充对应版本的测试降低环境差异风险。关注上游 EOL 节奏Python 与 Kubernetes 的 EOL 会传导为 Airflow 版本支持的移除需将上游 EOL 日历纳入 Airflow 升级计划的考量提前一个 MINOR/MAJOR 周期完成环境升级。小结Apache Airflow 的版本支持策略是一套清晰、可预期的机制以版本生命周期表Maintenance / Limited Maintenance / EOL界定各主版本的服务边界以上游 EOL 即移除、最旧受支持版本为默认、新版本尽快接入三条规则管理 Python 与 Kubernetes 的适配节奏并通过 supported_versions.py 与global_constants.py等脚本/常量实现文档与版本矩阵的自动化同步。理解这套机制你就能在 Airflow 部署、升级与安全合规之间做出有据可依的决策。【免费下载链接】airflowApache Airflow - A platform to programmatically author, schedule, and monitor workflows项目地址: https://gitcode.com/GitHub_Trending/ai/airflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考