Portal:MicroOS/Design
已安装软件包
openSUSE MicroOS 安装介质包含所有软件包,这些软件包是
- 启动系统所必需的。
- 运行容器所必需的。
- 配置和运行“容器即服务”堆栈所必需的。
软件包列表与 SUSE Linux Enterprise Server 最小系统类似。
无法保证稳定的 ABI:如果需要,将引入软件包,如果不再需要,则将其删除。这不被认为是一个缺点,因为客户工作负载在容器中运行。相反,优势在于仅安装完成请求作业所需的最小软件集。
安装介质中提供用于硬件启用、日志记录、监控等任务的额外 RPM 软件包。在线仓库与 openSUSE Tumbleweed 仓库相同。
作业调度器
openSUSE MicroOS 使用 systemd 定时器(请参阅 man systemd.timer)进行作业执行。与 cron 相比,systemd 定时器提供更好的控制和调试选项,并避免了 cronjobs 和 systemd 会话管理的问题。默认情况下未安装 cron,因此常规 cronjobs 将不会执行。
初始化系统
openSUSE MicroOS 使用 systemd 作为其初始化系统。默认情况下不包含对传统 SysV 初始化脚本(包括 LSB 兼容初始化脚本)的支持,应将 SysV 初始化脚本转换为 systemd 服务。
文件系统
根文件系统唯一可用且受支持的文件系统是 btrfs。其他文件系统,如 ext4 和 xfs,可用于数据分区,并受支持。根文件系统是只读的,一些子卷可用于存储数据,例如 /var、/home 和 /root。为了存储修改后的配置文件,overlayfs 用于 /etc。/etc/ 的工作目录是 /var/lib/overlay/<snapshot_number>/etc。
文件系统布局
子卷
/@/<subvolumes> - Default subvolumes (see the list of default subvolumes on the BTRFS support page) -> /root - root user home directory -> /boot/writable - store for early boot services (GRUB, Ignition) -> /var - Variable data, not part of a snapshot -> /.snapshots/1/snapshot - Initial installation of Base OS -> /.snapshots/2/snapshot - Base OS after first update -> /.snapshots/3/snapshot - Base OS after second update -> /.snapshots/X/snasphot - Base OS after (X-1) updates
除 .snapshots 子卷外,上述非默认子卷默认情况下在 openSUSE MicroOS 中添加,以确保在根文件系统为只读时可以写入这些位置。
重要文件夹
/var
存储变量数据应该是一个单独的 btrfs 分区。这是因为快照和回滚在根文件系统上启用了 qgroups,这对于容器来说会造成巨大的性能瓶颈。
/var/lib/overlayfs
用于提供挂载到 /etc 的 overlay 存储。为了写入更改,每个 btrfs 快照都有一个对应的 overlay;overlay 是透明的,即较旧快照中的更改也会对较新的快照可见。该目录不必位于单独的分区上。
配置
系统在安装期间尽可能地进行预配置 - 通常系统管理员不需要额外的配置。对于配置,openSUSE MicroOS 使用 cloud-init 用于 OpenStack Cloud,并使用 ignition 在启动阶段调整系统。主要配置项是网络和 ssh 密钥,以允许管理员登录到机器。
请注意,默认情况下,只有使用 YaST2 进行安装时才会设置 root 密码。否则,无法进行本地登录,因此需要配置帐户或安装 ssh 密钥。
Ignition
我们的大多数预构建 MicroOS 系统镜像使用 Ignition 进行首次启动时的配置。
请查看我们的 Ignition 快速入门页面,了解如何开始使用。
Cloud-init
我们为 OpenStack 构建的镜像使用 Cloud-init 进行首次启动时的配置。它是一个灵活且流行的框架,用于自定义云实例。
有一些 文档 说明如何为 MicroOS 设置 cloud-init。
健康检查
在启动阶段会进行多次错误检查。如果检测到错误,将使用以下规则
- 新快照出现错误
- 如果存在,回滚到上一个已知的正常快照
- 已成功启动的快照出现错误
- 尝试重新启动系统
- 如果错误仍然存在,关闭服务,通知系统管理员
安全性和不可变性
- Apparmor
- 完全支持
- SELinux
- 完全支持基本镜像和容器主机系统角色
安装和更新软件包
可以使用 transactional-update 或 pkcon 应用程序更新 MicroOS 安装并安装新的 RPM 软件包。有关更多信息,请参见 Portal:MicroOS/Zypper(以及 Kubic:Update and Reboot#Update and Reboot of openSUSE_Kubic and openSUSE MicroOS)。