2.3. 强化 RHCOS
RHCOS 在创建后经过调整以部署到 OpenShift Container Platform 中,只需对 RHCOS 节点进行很少更改甚至无需更改。每个采用 OpenShift Container Platform 的机构都对系统加强有自己的要求。作为一个 RHEL 系统,RHCOS 中添加了针对 OpenShift 的修改和功能(如 Ignition、ostree 和一个只读 /usr
,用来提供有限的不可变性),像任何 RHEL 系统一样,可以对它进行强化。不同之处在于您管理强化的方式。
OpenShift Container Platform 及其 Kubernetes 引擎的一个主要功能就是根据需要迅速缩放应用程序和基础架构。除非不可避免,否则您不需要通过登录到主机并添加软件或更改设置来直接更改 RHCOS。您需要让 OpenShift Container Platform 安装程序和 control plane 管理对 RHCOS 的更改,以便可以在不手动干预的情况下启动新节点。
因此,如果您准备在 OpenShift Container Platform 中强化 RHCOS 节点来满足安全需求,您应该同时考虑要强化的功能以及如何着手进行这种强化。
2.3.1. 在 RHCOS 中选择要强化的功能
RHEL 8 安全强化指南介绍了如何处理任何 RHEL 系统的安全问题。
使用本指南来学习如何处理加密、评估漏洞以及评估不同服务受到的威胁。同样,您可以了解如何扫描合规标准、检查文件完整性、执行审核以及对存储设备进行加密。
了解了您要强化的功能后,您可以决定如何在 RHCOS 中强化它们。
2.3.2. 选择如何强化 RHCOS
不建议在 OpenShift Container Platform 中直接修改 RHCOS 系统。取而代之,您应该考虑在节点池中修改系统,如 worker 节点和 control plane 节点。在非裸机安装中,当需要一个新节点时,您可以请求一个您所需的类型的新节点,并且它将从 RHCOS 镜像创建,再加上之前创建的修改。
在安装前、在安装过程中以及集群启动和运行后,您有机会修改 RHCOS。
2.3.2.1. 安装前强化
对于裸机安装,您可以在开始 OpenShift Container Platform 安装前为 RHCOS 添加强化功能。例如,您可以在引导 RHCOS 安装程序时添加内核选项来开启或关闭安全功能,如各种 SELinux 布尔值或低级别设置,如对称多线程。
不支持在 RHCOS 节点上禁用 SELinux。
虽然裸机 RHCOS 安装难度更大,但有机会在开始 OpenShift Container Platform 安装前完成操作系统更改。如果您需要确保尽早设置某些功能,比如磁盘加密或者特殊联网设置,这一点就很重要。
2.3.2.2. 安装过程中强化
您可以中断 OpenShift Container Platform 安装过程并更改 Ignition 配置。通过 Ignition 配置,您可以将自己的文件和 systemd 服务添加到 RHCOS 节点中。您还可以对用于安装的 install-config.yaml
文件进行一些基本的安全相关更改。以这种方式添加的内容将在每个节点第一次引导时可用。
2.3.2.3. 集群运行后强化
在 OpenShift Container Platform 集群启动并运行后,有几种方法可用来将强化功能应用到 RHCOS:
-
守护进程集:如果您需要在每个节点上运行某个服务,您可以使用 Kubernetes 的
DaemonSet
对象添加该服务。 -
机器配置:
MachineConfig
对象包含 Ignition 配置的子集,其格式相同。通过将机器配置应用到所有 worker 或 control plane 节点,您可以确保添加到集群中的同类型的下一个节点会应用相同的更改。
这里提到的所有功能在 OpenShift Container Platform 产品文档中都有介绍。