11.5. 管理 worker 池 Canary 的机器配置继承
您可以配置机器配置池 (MCP) Canary,以继承分配给现有 MCP 的任何 MachineConfig
。当您要使用 MCP Canary 来测试现有 MCP 时,此配置很有用。
先决条件
- 您已创建了一个或多个 MCP。
流程
按照以下两个步骤所述,创建一个二级 MCP:
将以下配置文件保存为
machineConfigPool.yaml
。machineConfigPool
YAML 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来创建新机器配置池:
oc create -f machineConfigPool.yaml
$ oc create -f machineConfigPool.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
machineconfigpool.machineconfiguration.openshift.io/worker-perf created
machineconfigpool.machineconfiguration.openshift.io/worker-perf created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
将一些机器添加到二级 MCP。以下示例将 worker 节点
worker-a
、worker-b
和worker-c
标记为 MCPworker-perf
:oc label node worker-a node-role.kubernetes.io/worker-perf=''
$ oc label node worker-a node-role.kubernetes.io/worker-perf=''
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc label node worker-b node-role.kubernetes.io/worker-perf=''
$ oc label node worker-b node-role.kubernetes.io/worker-perf=''
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc label node worker-c node-role.kubernetes.io/worker-perf=''
$ oc label node worker-c node-role.kubernetes.io/worker-perf=''
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 MCP
worker-perf
创建新的MachineConfig
,如以下两个步骤所述:将以下
MachineConfig
示例保存为名为new-machineconfig.yaml
的文件:MachineConfig
YAML 示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令来应用
MachineConfig
:oc create -f new-machineconfig.yaml
$ oc create -f new-machineconfig.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
创建新的 Canary MCP,并从您在上一步中创建的 MCP 添加机器。以下示例创建一个名为
worker-perf-canary
的 MCP,并添加您预先创建worker-perf
MCP 中的机器。运行以下命令,标记 canary worker 节点
worker-a
:oc label node worker-a node-role.kubernetes.io/worker-perf-canary=''
$ oc label node worker-a node-role.kubernetes.io/worker-perf-canary=''
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,从原始 MCP 中删除 Canary worker 节点
worker-a
:oc label node worker-a node-role.kubernetes.io/worker-perf-
$ oc label node worker-a node-role.kubernetes.io/worker-perf-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将以下文件保存为
machineConfigPool-Canary.yaml
。machineConfigPool-Canary.yaml
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 可选值。这个示例包括
worker-perf-canary
作为一个额外值。您可以使用此方法配置额外MachineConfig
成员的值。
运行以下命令,创建新的
worker-perf-canary
:oc create -f machineConfigPool-Canary.yaml
$ oc create -f machineConfigPool-Canary.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
machineconfigpool.machineconfiguration.openshift.io/worker-perf-canary created
machineconfigpool.machineconfiguration.openshift.io/worker-perf-canary created
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
检查
MachineConfig
是否继承在worker-perf-canary
中。运行以下命令验证没有 MCP 降级:
oc get mcp
$ oc get mcp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-2bf1379b39e22bae858ea1a3ff54b2ac True False False 3 3 3 0 5d16h worker rendered-worker-b9576d51e030413cfab12eb5b9841f34 True False False 0 0 0 0 5d16h worker-perf rendered-worker-perf-b98a1f62485fa702c4329d17d9364f6a True False False 2 2 2 0 56m worker-perf-canary rendered-worker-perf-canary-b98a1f62485fa702c4329d17d9364f6a True False False 1 1 1 0 44m
NAME CONFIG UPDATED UPDATING DEGRADED MACHINECOUNT READYMACHINECOUNT UPDATEDMACHINECOUNT DEGRADEDMACHINECOUNT AGE master rendered-master-2bf1379b39e22bae858ea1a3ff54b2ac True False False 3 3 3 0 5d16h worker rendered-worker-b9576d51e030413cfab12eb5b9841f34 True False False 0 0 0 0 5d16h worker-perf rendered-worker-perf-b98a1f62485fa702c4329d17d9364f6a True False False 2 2 2 0 56m worker-perf-canary rendered-worker-perf-canary-b98a1f62485fa702c4329d17d9364f6a True False False 1 1 1 0 44m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证机器是否从
worker-perf
继承到worker-perf-canary
。oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME STATUS ROLES AGE VERSION ... worker-a Ready worker,worker-perf-canary 5d15h v1.27.13+e709aa5 worker-b Ready worker,worker-perf 5d15h v1.27.13+e709aa5 worker-c Ready worker,worker-perf 5d15h v1.27.13+e709aa5
NAME STATUS ROLES AGE VERSION ... worker-a Ready worker,worker-perf-canary 5d15h v1.27.13+e709aa5 worker-b Ready worker,worker-perf 5d15h v1.27.13+e709aa5 worker-c Ready worker,worker-perf 5d15h v1.27.13+e709aa5
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,验证
worker-a
上是否启用了kdump
服务:systemctl status kdump.service
$ systemctl status kdump.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令验证 MCP 是否已更新了
crashkernel
:cat /proc/cmdline
$ cat /proc/cmdline
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出应包含更新的
crashekernel
值,例如:输出示例
crashkernel=512M
crashkernel=512M
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
可选:如果对升级满意,您可以将
worker-a
返回到worker-perf
。运行以下命令,将
worker-a
返回到worker-perf
:oc label node worker-a node-role.kubernetes.io/worker-perf=''
$ oc label node worker-a node-role.kubernetes.io/worker-perf=''
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,从 canary MCP 中删除
worker-a
:oc label node worker-a node-role.kubernetes.io/worker-perf-canary-
$ oc label node worker-a node-role.kubernetes.io/worker-perf-canary-
Copy to Clipboard Copied! Toggle word wrap Toggle overflow