这 Fedora CoreOS 团队很高兴 宣布第一个预览版 的 Fedora CoreOS,一个新的 Fedora 专为安全、大规模运行容器化工作负载而构建的版本。 它是两者的继任者 Fedora 原子主机 和 CoreOS 容器 Linux. Fedora CoreOS 将 Container Linux 的供应工具、自动更新模型和理念与 Atomic Host 的打包技术、OCI 支持和 SELinux 安全性相结合。
继续阅读以了解有关此令人兴奋的新版本的更多详细信息。
为什么 Fedora 核心操作系统?
容器允许将工作负载可重复地部署到生产环境并自动扩展以满足需求。 容器提供的隔离意味着宿主操作系统可以很小。 它只需要一个 Linux 内核、systemd、一个容器运行时和一些额外的服务,例如一个 SSH 服务器。
虽然容器可以在全尺寸服务器操作系统上运行,但专门为容器构建的操作系统可以提供通用操作系统无法提供的功能。 由于所需的软件最少且统一,整个操作系统可以作为一个单元部署,几乎不需要定制。 而且,由于容器跨多个节点部署以实现冗余,操作系统可以自动更新自身,然后重新启动,而不会中断工作负载。
Fedora CoreOS 旨在为您的计算集群提供安全可靠的主机。 它专为运行无需定期维护的容器化工作负载而设计,可通过最新的操作系统改进、错误修复和安全更新自动更新自身。 它使用 Ignition 进行配置,使用 Podman 和 Moby 运行容器,并使用 rpm-ostree 以原子方式自动更新自己。
供应不可变的基础设施
无论您是在云、虚拟化还是裸机上运行, Fedora CoreOS 机器总是从同一个地方开始:a 通用操作系统映像. 然后,在第一次启动时, Fedora CoreOS 使用 Ignition 来配置系统。 Ignition 从云用户数据或远程 URL 读取 Ignition 配置,并使用它来创建磁盘分区和文件系统、用户、文件和 systemd 单元。
要配置机器:
- 写一个 Fedora CoreOS 配置 (FCC),一个 YAML 文档,用于指定所需的机器配置。 FCC 支持所有 Ignition 功能,还提供额外的语法(“糖”),可以更轻松地指定典型的配置更改。
- 使用 Fedora CoreOS 配置转译器 到 验证您的 FCC 并将其转换为 Ignition 配置.
- 启动一个 Fedora CoreOS机器和 将 Ignition 配置传递给它. 如果机器成功启动,则配置已完成且没有错误。
Fedora CoreOS 旨在作为不可变的基础架构进行管理。 配置机器后,您不应修改 /etc 或以其他方式重新配置机器。 相反,修改 FCC 并使用它来配置替换机器。
这类似于您管理容器的方式:容器映像不会就地更新,而是从头开始重建并重新部署。 这种方法可以在负载增加时轻松扩展。 只需使用相同的 Ignition 配置来启动其他机器。
自动更新
默认情况下, Fedora CoreOS 会自动下载新的操作系统版本,自动安装它们,然后重新启动。 随着时间的推移,版本逐渐推出。 如果我们在新版本中发现问题,我们甚至可以停止推出。 之间的升级 Fedora 发布被视为任何其他更新,并且无需用户干预即可自动应用。
Linux 生态系统发展迅速,软件更新可能会带来不希望的行为变化。 但是,为了使自动更新值得信赖,它们不能破坏现有机器。 为了避免这种情况, Fedora CoreOS 采用双管齐下的方法。 首先,我们自动测试对操作系统的每次更改。 然而,自动测试不能捕捉所有的回归,所以 Fedora CoreOS 还提供了多个独立的发布流:
- 测试流是当前的常规快照 Fedora 发布,以及更新。
- 在测试版本可用两周后,它会被发送到稳定流。 测试中发现的错误将在发布到稳定版之前修复。
- 下一个流是即将到来的常规快照 Fedora 发布,允许额外的时间来测试更大的变化。
所有三个流都接收安全更新和关键错误修复,并且旨在安全地用于生产使用。 大多数机器应该运行稳定的流,因为它接受了最多的测试。 但是,用户应该在下一个和测试流上运行百分之几的节点,并将问题报告给 问题跟踪器. 这有助于确保仅影响某些工作负载或某些硬件的错误在稳定之前得到修复。
遥测
为了帮助指导我们的开发工作, Fedora CoreOS 默认会执行一些遥测。 一个服务叫 fedora-coreos-pinger 会定期收集机器的非识别信息,如操作系统版本、云平台、实例类型,并上报给受控服务器 Fedora 项目。
不会报告或收集任何唯一标识符,并且这些数据将仅用于汇总以回答有关如何 Fedora 正在使用 CoreOS。 我们将在显着位置记录此收集正在发生以及如何禁用它。 我们还将告诉您如何通过报告其他详细信息(包括可能识别机器的信息)来帮助该项目。
的现状 Fedora 核心操作系统
Fedora CoreOS 仍在积极开发中,一些计划中的功能在第一个预览版本中不可用:
- 当前仅存在测试流; 下一个稳定的流尚不可用。
- 一些云和虚拟化平台尚不可用。 当前仅支持 x86_64。
- 启动直播 Fedora 尚不支持通过网络 (PXE) 或 CD 的 CoreOS 系统。
- 我们正在积极讨论与 Kubernetes 发行版(包括 OKD)更紧密集成的计划。
- Fedora CoreOS Config Transpiler 将随着时间的推移获得更多的糖。
- 遥测尚未激活。
- 文档仍在开发中。
尽管 Fedora CoreOS 旨在用于生产,预览版不应在生产中使用。 Fedora 在预览期间,CoreOS 可能会以不兼容的方式进行更改。 无法保证预览版会成功更新到更高的预览版或稳定版。
未来
我们预计预览期将持续约六个月。 在预览结束时,我们将声明 Fedora CoreOS 稳定并鼓励在生产中使用它。
CoreOS Container Linux 将维持到大约六个月后 Fedora CoreOS 被宣布为稳定的。 我们将在今年晚些时候公布确切的时间。 在预览期间,我们将发布工具和文档来帮助 Container Linux 用户迁移到 Fedora 核心操作系统。
Fedora Atomic Host 将一直维护到生命周期结束 Fedora 29,预计在 11 月下旬。 在那之前, Fedora 原子主机用户应该迁移到 Fedora 核心操作系统。
参与 Fedora 核心操作系统
要试用新版本,请前往 下载页面 获取操作系统映像或云映像 ID。 然后使用 快速入门指南 让机器快速运行。 最后,参与进来! 您可以向 问题跟踪器. 你也可以讨论 Fedora CoreOS 在 Fedora 话语, 这 开发邮件列表,或在 Freenode 上的 #fedora-coreos 中。
欢迎来到 Fedora CoreOS,让我们知道您的想法!