努力
加油

新项目上线,应该选择CentOS 8还是迁移到Rocky Linux?

先说结论:新项目上线,别犹豫,直接选 Rocky Linux(或 AlmaLinux),并且强烈建议锁定在 EL8 版本,不要碰 CentOS Stream。

如果非要二选一,Rocky Linux 是 CentOS 精神续作中唯一值得推荐的生产级替代方案。至于 CentOS 8,它已经结束了生命周期(EOL),连官方仓库都关了,现在装上去就是给自己埋雷。

下面从几个维度给你掰扯清楚,为什么这么选,以及踩坑指南。

1. 为什么 CentOS 8 已经“入土”了?

很多人对 CentOS 还有情怀,觉得它是 RHEL 的免费克隆版。但事实很残酷:

  • EOL 时间已过:CentOS 8 已于 2021 年底停止维护。这意味着没有安全补丁,没有 Bug 修复。在生产环境跑一个没补丁的系统,等于裸奔。
  • 镜像源失效:虽然网上还有一些第三方镜像站还在同步旧数据,但官方源已经归档。你 yum update 可能会遇到各种依赖地狱或者连接超时,排查起来极其痛苦。
  • 社区共识:国内各大云厂商、开源社区、企业运维团队,早已集体抛弃 CentOS 8。没人再为它写教程,没人再提供技术支持。

所以,“选择 CentOS 8”这个选项本身就不存在,除非你想体验“半夜被报警短信叫醒修系统”的感觉。

2. Rocky Linux vs. CentOS Stream:到底选谁?

既然排除了 CentOS 8,剩下的主流选择其实是 Rocky Linux / AlmaLinux 和 CentOS Stream。这两者定位完全不同,别搞混了。

A. Rocky Linux(及 AlmaLinux)—— 真正的“平替”

  • 定位:二进制兼容 RHEL(Red Hat Enterprise Linux)。
  • 特点:你编译好的 RPM 包,在 Rocky 上能跑;在 RHEL 上也能跑。反之亦然。它是社区驱动的,由 CloudLinux 公司支持(Alma 也是类似背景)。
  • 适用场景:绝大多数生产环境。特别是那些对稳定性要求极高、需要长期运行(3-5年不动)、且不想支付 Red Hat 订阅费的企业。
  • 优势:稳定、保守、符合传统运维习惯。代码逻辑简单粗暴:上游发布什么,我就克隆什么。

B. CentOS Stream —— “滚动预览版”

  • 定位:RHEL 的上游开发分支。
  • 特点:它不是 RHEL 的克隆,而是 RHEL 的“测试版+准正式版”。你在 CentOS Stream 8/9 上看到的特性,未来会在 RHEL 中出现,但可能还没经过 RHEL 那套严格的 QA 流程。
  • 适用场景:开发者、CI/CD 流水线、或者希望提前体验最新内核/软件栈的场景。
  • 风险:对于核心业务系统,Stream 偶尔会出现因为上游变动导致的兼容性问题。虽然概率不高,但在XX、电信等强一致性要求的行业,很多 CTO 不敢用。

结论:如果你想要的是“以前那个稳定的 CentOS”,那就选 Rocky Linux。

3. 版本选择:EL8 还是 EL9?

这是另一个关键决策点。目前 Rocky Linux 主要版本是 8.x 和 9.x。

特性 Rocky Linux 8 (基于 RHEL 8) Rocky Linux 9 (基于 RHEL 9)
生命周期 至 2029 年 5 月 至 2032 年 6 月
内核版本 较老(4.18),但极度稳定 较新(5.14+),支持新硬件
软件生态 兼容绝大多数老旧应用 默认 Python 3.9, GCC 11+,更现代
容器支持 Docker + Podman Podman 原生支持更好,Docker 需额外配置
推荐指数 ⭐⭐⭐⭐ (存量迁移首选) ⭐⭐⭐⭐⭐ (新项目首选)

建议:

  • 如果是全新项目,且你的技术栈比较新(比如用了较新的 Java 版本、Go 语言、Kubernetes 等),直接上 Rocky Linux 9。它的生命周期更长,直到 2032 年,你可以安心用很久。
  • 如果你的项目依赖一些非常老的库(比如某些遗留的 Oracle 客户端、老旧的中间件),而它们在 EL9 上编译困难,才考虑 EL8。但目前来看,EL9 的兼容性已经做得很好了。

4. 国内云计算厂商的实际操作建议

在国内阿里云、腾讯云、华为云等平台,你会发现它们都有自己的“私有化”发行版:

  • 阿里云 Anolis OS(龙蜥):基于 CentOS/RHEL 体系,深度优化,与阿里云 ECS 结合紧密。
  • 腾讯云 TLinux:同样基于 RHEL/CentOS 生态。
  • 华为欧拉 openEuler:注意!openEuler 是独立分支,虽然兼容 RPM,但它有自己的演进路线,不完全等同于 Rocky/CentOS。

实操建议:

  1. 通用场景:直接使用 Rocky Linux 9 的官方 ISO 制作自定义镜像,或者使用云厂商提供的“自定义镜像”功能导入。这样最干净,没有厂商预装的监控XX干扰。
  2. 重度绑定某家云:如果你确定未来几年只在这家云上玩,且需要深度集成(比如自动挂载云盘、无缝对接云监控),可以用该厂商的衍生版(如 Anolis OS 8/23)。但要注意,Anolis 也在逐步向自己的方向演进,长期看可能存在偏离标准 RHEL 的风险。
  3. 合规性提醒:无论选哪个,确保你的软件许可证(License)允许在 Rocky/Alma 上使用。大多数商业软件都声明兼容 RHEL,而 Rocky 承诺二进制兼容,所以理论上没问题。但最好保留一份兼容性声明截图,以备审计。

5. 迁移或部署时的避坑指南

  • 不要手动改 /etc/os-release:有些教程教你把 CentOS 改成 Rocky,那是错误的。应该全新安装。
  • 防火墙与 SELinux:Rocky Linux 默认开启 SELinux。新手容易踩坑,导致权限问题查半天。建议初期设置为 permissive 模式,熟悉后再调整策略,或者直接禁用(不推荐,但不影响基本功能)。
  • YUM/DNF 源配置:确保使用国内镜像源(如清华、阿里、网易的 Rocky 镜像),否则 dnf install 会慢到让你怀疑人生。
    # 示例:更换为清华源
    sudo sed -i 's/mirrorlist=/#mirrorlist=/g' /etc/yum.repos.d/CentOS-*
    sudo sed -i 's|#baseurl=|baseurl=|g' /etc/yum.repos.d/CentOS-*
    sudo sed -i 's|vault.centos.org|mirrors.tuna.tsinghua.edu.cn/rocky|g' /etc/yum.repos.d/CentOS-*
    sudo dnf makecache
  • 内核参数调优:新项目上线前,务必检查 sysctl.conf 的网络参数(如 net.ipv4.tcp_tw_reuse 等),根据业务类型(高并发 Web、数据库等)进行微调。

总结

  • CentOS 8:淘汰,勿选。
  • CentOS Stream:谨慎,适合开发测试或非核心业务。
  • Rocky Linux 9:推荐,新项目首选,稳定、长寿、社区活跃。
  • 部署方式:全新安装,使用国内镜像源,做好基础安全加固。

最后说一句,运维的本质是可预测性。Rocky Linux 提供的就是这种可预测性——它明天不会突然变成另一个东西,它只是今天 RHEL 的精确复制品。这对于生产环境来说,比任何花哨的新特性都重要。