24.2. 配置驱除策略
当节点在可用资源上运行较低时,驱除策略 允许节点失败一个或多个 pod。pod 失败,节点可以回收所需资源。
驱除策略是 驱除触发器信号 以及节点配置文件或者 命令行 中设置的特定 驱除阈值 的组合。驱除可以是 硬 的,其中节点可以对超过阈值的 pod 执行操作,或 软 操作,其中节点允许在执行操作前允许宽限期。
要修改集群中的节点,请根据需要更新节点配置映射。不要手动编辑 node-config.yaml
文件。
通过使用配置良好的驱除策略,节点可以主动监控并阻止计算资源的总资源消耗。
当节点出现故障时,节点将终止 pod 中的所有容器,并且 PodPhase
过渡到 Failed。
在检测磁盘压力时,节点支持 nodefs
和 imagefs
文件系统分区。
nodefs
或 rootfs
是节点用于本地磁盘卷、守护进程日志、emptyDir 和其他本地存储的文件系统。例如,rootfs
是提供 / 的文件系统。rootfs
包含 openshift.local.volumes
,默认为 /var/lib/origin/openshift.local.volumes。
imagefs
是容器运行时用来存储镜像和个别容器可写层的文件系统。对于 imagefs
,驱除阈值达到 85% 满。imagefs
文件系统取决于运行时,如果 Docker,容器使用的存储驱动程序。
对于 Docker:
如果您使用
devicemapper
存储驱动程序,imagefs
是精简池。您可以通过在 Docker 守护进程中设置
--storage-opt dm.basesize
标志来限制容器的读写层。$ sudo dockerd --storage-opt dm.basesize=50G
-
如果您使用
overlay2
存储驱动程序,imagefs
是包含 /var/lib/docker/overlay2 的文件系统。
-
对于使用 overlay 驱动程序的 CRI-O,
imagefs
默认是 /var/lib/containers/storage。
如果不使用本地存储隔离(临时存储),并且不使用 XFS 配额(volumeConfig),则不能限制 pod 的本地磁盘用量。
24.2.1. 使用节点配置来创建策略
要配置驱除策略,请编辑适当的节点 配置映射,在 eviction-hard
或 eviction-soft
参数下指定驱除阈值。
以下示例演示了驱除阈值:
用于硬盘的节点配置文件示例
kubeletArguments: eviction-hard: 1 - memory.available<100Mi 2 - nodefs.available<10% - nodefs.inodesFree<5% - imagefs.available<15% - imagefs.inodesFree<10%
您必须为 inodesFree
参数提供百分比值。您可以为其他参数提供百分比或数字值。
Soft Eviction 的节点配置文件示例
kubeletArguments: eviction-soft: 1 - memory.available<100Mi 2 - nodefs.available<10% - nodefs.inodesFree<5% - imagefs.available<15% - imagefs.inodesFree<10% eviction-soft-grace-period:3 - memory.available=1m30s - nodefs.available=1m30s - nodefs.inodesFree=1m30s - imagefs.available=1m30s - imagefs.inodesFree=1m30s
重启 OpenShift Container Platform 服务以使更改生效:
# systemctl restart atomic-openshift-node