OpenShift 4 - 使用 MachineConfigPool 特性分批升级集群 Worker 节点(附视频)

《OpenShift / RHEL / DevSecOps 汇总目录》
文本已在OpenShift 4.10环境中进行验证。

文章目录

  • 升级场景说明
  • 实现分时间窗口升级 OpenShift Worker 节点
    • 为 Worker 节点分组
      • 设置 Worker 节点的分组标签
      • 为每个 Worker 分组创建 MachineConfigPool
    • 按分组升级 Worker 节点
  • 演示视频
  • 参考

升级场景说明

OpenShift 4 - 使用 MachineConfigPool 特性分批升级集群 Worker 节点(附视频)_第1张图片

实现分时间窗口升级 OpenShift Worker 节点

为 Worker 节点分组

设置 Worker 节点的分组标签

假如 OpenShift 集群中有 3 个 Worker 节点,那么执行以下命令对每个 Worker 节点设置新的标签。

oc label node <NODE1> worker-pool=wp1
oc label node <NODE2> worker-pool=wp2
oc label node <NODE3> worker-pool=wp3

为每个 Worker 分组创建 MachineConfigPool

在 OpenShift 中导入以下 YAML,创建 3 个 MachineConfigPool

apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfigPool
metadata:
  name: worker-pool-1
spec:
  machineConfigSelector:
    matchLabels:
      machineconfiguration.openshift.io/role: worker
  nodeSelector:
    matchLabels:
      worker-pool: wp1
---
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfigPool
metadata:
  name: worker-pool-2
spec:
  machineConfigSelector:
    matchLabels:
      machineconfiguration.openshift.io/role: worker
  nodeSelector:
    matchLabels:
      worker-pool: wp2
---
apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfigPool
metadata:
  name: worker-pool-3
spec:
  machineConfigSelector:
    matchLabels:
      machineconfiguration.openshift.io/role: worker
  nodeSelector:
    matchLabels:
      worker-pool: wp3

按分组升级 Worker 节点

在 OpenShift 控制台中进入到 “管理”-“集群设置” 菜单。然后点击 “集群升级” 页面中的 “频道” 链接,并选出适当的升级频道。
OpenShift 4 - 使用 MachineConfigPool 特性分批升级集群 Worker 节点(附视频)_第2张图片
点击 “集群升级” 页面中的 “频道” 链接旁边的 “Select a version” 按钮,在“更新集群”对话框的“选择新版本”中确定升级的目标 OpenShift 版本。然后选择 “Partial cluster update” 选项,并本次升级中“Pause”(暂停)的节点,例如下图将不对选中的 worker-pool-2 和 worker-pool-3 对应的 Worker 节点进行升级。最后点击 “更新” 按钮。
OpenShift 4 - 使用 MachineConfigPool 特性分批升级集群 Worker 节点(附视频)_第3张图片
在升级过程中确认只对 Master 和 worker-pool-1 中的 Worker 节点进行升级。
OpenShift 4 - 使用 MachineConfigPool 特性分批升级集群 Worker 节点(附视频)_第4张图片
直到本次升级结束,可以运行以下命令查看升级状态,确认 worker-pool-2 和 worker-pool-3 的 UPDATED 状态都是 False。

$ oc get mcp
NAME            CONFIG                                                    UPDATED   UPDATING   DEGRADED   MACHINECOUNT   READYMACHINECOUNT   UPDATEDMACHINECOUNT   DEGRADEDMACHINECOUNT   AGE
master          rendered-master-1fdb5077ccc2372382d15a3f3d64411a          True      False      False      3              3                   3                     0                      140m
worker          rendered-worker-504f9b88025481901d1c2a7b15cc92c4          True      False      False      0              0                   0                     0                      140m
worker-pool-1   rendered-worker-pool-1-504f9b88025481901d1c2a7b15cc92c4   True      False      False      1              1                   1                     0                      83m
worker-pool-2   rendered-worker-pool-2-4161d0bc43f4c49529ee39a45a317bb8   False     False      False      1              0                   0                     0                      71m
worker-pool-3   rendered-worker-pool-3-4161d0bc43f4c49529ee39a45a317bb8   False     False      False      1              0                   0                     0                      69m

可以集群在控制台的 “集群设置” 页面中分别点击 worker-pool-2 和 worker-pool-3 下方的 “Resume update” 来升级集群的其他节点。
OpenShift 4 - 使用 MachineConfigPool 特性分批升级集群 Worker 节点(附视频)_第5张图片

演示视频

视频

参考

https://www.redhat.com/en/blog/openshift-container-platform-4-how-does-machine-config-pool-work

你可能感兴趣的:(DevOps,OpenShift,4,OpenShift,kubernetes,openshift,SRE,devops)