2.7. 为 RHCOS 添加扩展
RHCOS 是基于容器的最小 RHEL 操作系统,旨在为所有平台的 OpenShift Container Platform 集群提供一组通用的功能。通常不建议在 RHCOS 系统中添加软件软件包,但 MCO 提供了一个 extensions(扩展)
功能,您可以使用 MCO 为 RHCOS 节点添加一组最小的功能。
目前,有以下扩展可用:
-
usbguard:添加
usbguard
扩展可保护 RHCOS 系统不受入侵 USB 设备的攻击。详情请查看 USBGuard。 -
Kerberos:添加
kerberos
扩展提供了一种机制,允许用户和机器标识自身对网络进行定义的定义、限制对管理员配置的区域和服务的访问权限。请参阅使用 Kerberos 的详情,包括如何设置 Kerberos 客户端并挂载 Kerberized NFS 共享。
以下流程描述了如何使用机器配置为 RHCOS 节点添加一个或多个扩展。
先决条件
- 有一个正在运行的 OpenShift Container Platform 集群(版本 4.6 或更高版本)。
- 以具有管理特权的用户身份登录集群。
流程
为扩展创建机器配置:创建一个 YAML 文件(如
80-extensions.yaml
),其中包含MachineConfig
extensions
对象。本例告诉集群添加usbguard
扩展。$ cat << EOF > 80-extensions.yaml apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: 80-worker-extensions spec: config: ignition: version: 3.2.0 extensions: - usbguard EOF
将机器配置添加到集群。键入以下内容将机器配置添加到集群中:
$ oc create -f 80-extensions.yaml
这会将所有 worker 节点设置为安装
usbguard
的 rpm 软件包。检查是否应用了扩展:
$ oc get machineconfig 80-worker-extensions
输出示例
NAME GENERATEDBYCONTROLLER IGNITIONVERSION AGE 80-worker-extensions 3.2.0 57s
检查是否应用新机器配置,并且节点是否处于降级状态。它可能需要几分钟时间。worker 池将显示更新进行中,每台机器都成功应用了新机器配置:
$ oc get machineconfigpool
输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-35 True False False 3 3 3 0 34m worker rendered-worker-d8 False True False 3 1 1 0 34m
检查扩展。要检查是否应用了扩展,请运行:
$ oc get node | grep worker
输出示例
NAME STATUS ROLES AGE VERSION ip-10-0-169-2.us-east-2.compute.internal Ready worker 102m v1.30.3
$ oc debug node/ip-10-0-169-2.us-east-2.compute.internal
输出示例
... To use host binaries, run `chroot /host` sh-4.4# chroot /host sh-4.4# rpm -q usbguard usbguard-0.7.4-4.el8.x86_64.rpm