Python 版本与镜像选择¶
先选镜像,再检查目标节点 Python。 更新
spray-job镜像不会升级目标节点 Python;Python 版本符合要求也不等于完整集群生命周期已经验证。
两套镜像的要求¶
控制端是运行 Ansible 的 spray-job 容器;目标端是被管理的 Kubernetes 节点,包括 control-plane 和 worker。
以下对应当前源码的构建配置,镜像仓库为 ghcr.io/kubean-io/spray-job,<version> 表示 Kubean 版本。历史镜像以其实际依赖为准。
表中的
2.21及对应 Ansible 版本会随锁定的 Kubespray 升级而变化,以镜像实际内容为准,本页可能滞后。用页末命令自查。
| 镜像 tag | Ansible / ansible-core | 控制端 Python 支持范围 | 目标端 Python 支持范围 |
|---|---|---|---|
<version>-ansible-core2.16,别名 <version> |
9.13.0 / 2.16 | 3.10–3.12 | 2.7 或 3.6–3.12 |
<version>-ansible-core2.21,别名 <version>-modern |
当前为 14.4.0 / 2.21 | 3.12–3.14 | 3.9–3.14 |
- 范围包含两端,是 ansible-core 的支持范围,不是镜像内实际安装的 Python 版本。
- core 版本 tag 与对应别名指向同一次构建的镜像。core 版本从镜像读取;未来升级时,准确 tag 会随之变化,
<version>-modern保持简短入口。 modern跟随锁定的 Kubespray;latest也指向现代镜像,并非普通版本 tag 的别名。生产环境请选择明确版本或 digest。- Ansible 9 / core 2.16 已 EOL;旧版引擎不能保证兼容新 Kubespray 的所有操作,例如使用
mount_facts的 reset。
自查镜像内实际版本:docker run --rm --entrypoint ansible <image> --version。
主要系统的默认 Python 参考¶
以下为实机记录及补充信息,整理于 2026-09-28。补丁版本和命令别名可能随系统镜像、更新及配置变化,请以目标节点实际解释器为准;本表不是完整 OS 支持认证。
| 系统 | python |
python3 |
该 Python 3 是否满足 core 2.21 范围 |
|---|---|---|---|
| Ubuntu 22.04.4 LTS | 未找到命令 | 3.10.12 | 是 |
| Ubuntu 24.04 LTS | 未找到命令 | 3.12.3 | 是 |
| Rocky Linux 9.2 | 3.9.16 | 3.9.16 | 是 |
| Kylin V10(配置为 SP3) | 2.7.18 | 3.7.9 | 否 |
| Kylin V11(Swan25) | 未找到命令 | 3.11.6 | 是 |
| RHEL 9.2(Plow) | 3.9.16 | 3.9.16 | 是 |
| RHEL 8 | 未记录 | 3.6.8(默认版本补充) | 否 |
上述 Python 3 版本均在 core 2.16 的目标端支持范围内。python 命令缺失不代表无法使用 Ansible;关键是实际选中的解释器。
如何选择¶
- 目标节点已有 Python 3.9–3.14:可复用该解释器评估现代镜像,不必强制安装 Python 3.12。
- RHEL 8 / 上表 Kylin V10:使用现代镜像前需额外准备受支持的 Python,并通过
ansible_python_interpreter指定实际路径;保留系统 Python。 - 新 Python 必须在执行依赖 Python 的预检查及 hooks 前准备好。离线环境还需提供匹配系统和架构的软件包及完整依赖;不能只更换控制端镜像。