9.4. 更新集群中的RHEL compute 系统
在对集群进行更新后,必须更新集群中的Red Hat Enterprise Linux(RHEL)compute 系统。
RHEL worker (compute) 集群支持使用 Red Hat Enterprise Linux (RHEL) 版本 8.4 和 8.5。
如果您使用 RHEL 作为操作系统,您还可以将计算机器更新至 OpenShift Container Platform 的另一个次要版本。当执行次版本更新时,您不需要排除 RHEL 中的任何 RPM 软件包。
您无法将 RHEL 7 计算机器升级到 RHEL 8。您必须部署新的 RHEL 8 主机,并且应该删除旧的 RHEL 7 主机。
先决条件
已更新了集群。
重要因为 RHEL 机器需要集群生成的资产才能完成更新过程,所以您必须在更新其中的 RHEL worker 机器前更新集群。
-
您可以访问用于将 RHEL 计算机器添加到集群的本地机器。您必须有权访问定义了 RHEL 系统及
upgrade
playbook 的hosts
Ansible 清单文件。 - 对于次版本的更新,RPM 存储库使用的是集群上运行的相同版本的 OpenShift Container Platform。
流程
停止并禁用主机上的防火墙:
# systemctl disable --now firewalld.service
注意默认情况下,使用 "Minimal" 安装选项的基础操作系统 RHEL 启用 firewalld 保护。在主机上启用了 firewalld 服务会阻止您访问 worker 上的 OpenShift Container Platform 日志。如果您希望继续访问 worker 上的 OpenShift Container Platform 日志,以后不要启用 firewalld。
启用 OpenShift Container Platform 4.9 所需的存储库:
在运行 Ansible playbook 的机器上,更新所需的存储库:
# subscription-manager repos --disable=rhel-7-server-ose-4.8-rpms \ --enable=rhel-7-server-ansible-2.9-rpms \ --enable=rhel-7-server-ose-4.9-rpms
在运行 Ansible playbook 的机器上,更新所需的软件包,包括
openshift-ansible
:# yum update openshift-ansible openshift-clients
在每个 RHEL 计算节点上,更新所需的软件仓库:
# subscription-manager repos --disable=rhel-7-server-ose-4.8-rpms \ --enable=rhel-7-server-ose-4.9-rpms \ --enable=rhel-7-fast-datapath-rpms \ --enable=rhel-7-server-optional-rpms
更新 RHEL worker 机器:
查看当前节点状态,以确定要更新哪个 RHEL worker:
# oc get node
输出示例
NAME STATUS ROLES AGE VERSION mycluster-control-plane-0 Ready master 145m v1.22.1 mycluster-control-plane-1 Ready master 145m v1.22.1 mycluster-control-plane-2 Ready master 145m v1.22.1 mycluster-rhel7-0 NotReady,SchedulingDisabled worker 98m v1.22.1 mycluster-rhel7-1 Ready worker 98m v1.22.1 mycluster-rhel7-2 Ready worker 98m v1.22.1 mycluster-rhel7-3 Ready worker 98m v1.22.1
记录下哪个机器具有
NotReady,SchedulingDisabled
状态。查看位于
/<path>/inventory/hosts
中的 Ansible 清单文件,并更新其内容,以便只有具有NotReady,SchedulingDisabled
状态的机器才列在[workers]
部分中,如下例所示:[all:vars] ansible_user=root #ansible_become=True openshift_kubeconfig_path="~/.kube/config" [workers] mycluster-rhel7-0.example.com
进入
openshift-ansible
目录:$ cd /usr/share/ansible/openshift-ansible
运行
upgrade
playbook:$ ansible-playbook -i /<path>/inventory/hosts playbooks/upgrade.yml 1
- 1
- 对于
<path>
,指定您创建的Ansible库存文件的路径。
注意upgrade
playbook 仅升级 OpenShift Container Platform 软件包。它不会更新操作系统软件包。
- 按照上一步中的流程更新集群中的每个 RHEL worker 机器。
更新完所有 worker 后,确认所有集群节点已更新至新版本:
# oc get node
输出示例
NAME STATUS ROLES AGE VERSION mycluster-control-plane-0 Ready master 145m v1.22.1 mycluster-control-plane-1 Ready master 145m v1.22.1 mycluster-control-plane-2 Ready master 145m v1.22.1 mycluster-rhel7-0 NotReady,SchedulingDisabled worker 98m v1.22.1 mycluster-rhel7-1 Ready worker 98m v1.22.1 mycluster-rhel7-2 Ready worker 98m v1.22.1 mycluster-rhel7-3 Ready worker 98m v1.22.1
可选:更新
upgrade
playbook 没有更新的操作系统软件包。要更新不在 4.9 中的软件包,请使用以下命令:# yum update
注意如果您使用安装 4.9 时使用的相同 RPM 存储库,则不需要排除 RPM 软件包。