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。其他文件系统,如 ext4xfs,可用于数据分区,并受支持。根文件系统是只读的,一些子卷可用于存储数据,例如 /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)。