-
多节点集群的默认驱逐策略。
-
如果虚拟机阻止升级,则必须手动关闭虚拟机。
-
单节点OpenShift的默认驱逐策略。
可以使用oc adm
实用程序或NodeMaintenance
自定义资源 (CR) 将节点置于维护模式。
有关补救、隔离和维护节点的更多信息,请参见Red Hat OpenShift的工作负载可用性文档。 |
虚拟机 (VM) 必须具有具有共享 |
节点维护运算符监视新的或已删除的NodeMaintenance
CR。检测到新的NodeMaintenance
CR时,不会调度新的工作负载,并且节点将与集群的其余部分隔离。所有可以驱逐的Pod都将从节点中驱逐。删除NodeMaintenance
CR时,CR中引用的节点将可用于新的工作负载。
使用 |
将节点置于维护状态会将节点标记为不可调度,并从中驱逐所有虚拟机和Pod。
您可以为虚拟机 (VM) 或集群配置驱逐策略。
虚拟机LiveMigrate
驱逐策略确保如果节点被置于维护状态或被清空,虚拟机实例 (VMI) 不会中断。具有此驱逐策略的VMI将实时迁移到另一个节点。
您可以使用OpenShift Virtualization Web控制台或命令行配置虚拟机 (VM) 的驱逐策略。
默认驱逐策略为 必须将不可迁移虚拟机的驱逐策略设置为 |
您可以为集群配置驱逐策略以优先考虑工作负载连续性或基础设施升级。
驱逐策略 | 描述 | 中断工作流 | 阻止升级 |
---|---|---|---|
|
优先考虑工作负载连续性而不是升级。 |
否 |
是 2 |
|
优先考虑升级而不是工作负载连续性,以确保环境得到更新。 |
是 |
否 |
|
关闭没有驱逐策略的虚拟机。 |
是 |
否 |
多节点集群的默认驱逐策略。
如果虚拟机阻止升级,则必须手动关闭虚拟机。
单节点OpenShift的默认驱逐策略。
您可以使用命令行配置虚拟机 (VM) 的驱逐策略。
默认驱逐策略为 必须将不可迁移虚拟机的驱逐策略设置为 |
通过运行以下命令编辑VirtualMachine
资源
$ oc edit vm <vm_name> -n <namespace>
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
name: <vm_name>
spec:
template:
spec:
evictionStrategy: LiveMigrateIfPossible (1)
# ...
1 | 指定驱逐策略。默认值为LiveMigrate 。 |
重启虚拟机以应用更改
$ virtctl restart <vm_name> -n <namespace>
配置了spec.running: true
的虚拟机 (VM) 会立即重启。spec.runStrategy
键提供了更大的灵活性,用于确定虚拟机在特定条件下的行为。
同时包含这两个键的虚拟机配置无效。 |
spec.runStrategy
键有四个可能的值
Always(始终)
在另一个节点上创建虚拟机 (VM) 时,虚拟机实例 (VMI) 始终存在。如果原始实例因任何原因停止,则会创建一个新的 VMI。这与running: true
的行为相同。
RerunOnFailure(失败时重新运行)
如果之前的实例失败,则会在另一个节点上重新创建 VMI。如果虚拟机成功停止(例如,当它被关闭时),则不会重新创建实例。
Manual(手动)
您可以使用start
、stop
和restart
virtctl 客户端命令手动控制 VMI 状态。虚拟机不会自动重启。
Halted(已停止)
创建虚拟机时,不存在 VMI。这与running: false
的行为相同。
virtctl start
、stop
和restart
命令的不同组合会影响运行策略。
下表描述了虚拟机在状态之间的转换。第一列显示虚拟机的初始运行策略。其余列显示 virtctl 命令以及运行该命令后的新运行策略。
初始运行策略 | 启动 (Start) | 停止 (Stop) | 重启 (Restart) |
---|---|---|---|
Always(始终) |
- |
Halted(已停止) |
Always(始终) |
RerunOnFailure(失败时重新运行) |
- |
Halted(已停止) |
RerunOnFailure(失败时重新运行) |
Manual(手动) |
Manual(手动) |
Manual(手动) |
Manual(手动) |
Halted(已停止) |
Always(始终) |
- |
- |
如果使用安装程序预置基础设施安装的集群中的节点未能通过机器运行状况检查且不可用,则 |
在裸机基础设施上部署 OpenShift Container Platform 时,与在云基础设施上部署相比,需要考虑其他因素。与云环境中集群节点被认为是短暂的相反,重新配置裸机节点需要更多的时间和精力来执行维护任务。
当裸机节点发生故障时(例如,发生致命的内核错误或网卡硬件故障),失败节点上的工作负载需要在集群中的其他位置重新启动,同时修复或更换问题节点。节点维护模式允许集群管理员优雅地关闭节点,将工作负载移动到集群的其他部分,并确保工作负载不会中断。在维护期间,会提供详细的进度和节点状态详细信息。