3.2.3. 在 RHCOS 上启用内核参数的多路径
RHCOS 支持主磁盘上的多路径,对硬件故障有更强的恢复能力,从而实现更高的主机可用性。
只有在使用机器配置激活多路径时才支持,如下流程所述。它必须在 RHCOS 安装后启用。
在 IBM Z 和 LinuxONE 上,只有在在安装过程中为其配置了集群时,才能启用多路径。如需更多信息,请参阅 Installing a cluster with z/VM on IBM Z and LinuxONE 中的 "Creating Red Hat Enterprise Linux CoreOS (RHCOS) machines" 部分。
先决条件
- 您有一个正在运行的 OpenShift Container Platform 集群,它使用版本 4.7 或更高版本。
- 您以具有管理特权的用户身份登录集群。
流程
要在 control plane 节点上启用多路径(也称为 master 节点):
-
创建机器配置文件,如
99-master-kargs-mpath.yaml
,该文件指示集群添加master
标签并标识多路径内核参数,例如:
apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: "master" name: 99-master-kargs-mpath spec: kernelArguments: - rd.multipath=default - root=/dev/disk/by-label/dm-mpath-root
-
创建机器配置文件,如
在 worker 节点上启用多路径:
创建机器配置文件,如
99-worker-kargs-mpath.yaml
,该文件指示集群添加worker
标签并标识多路径内核参数,例如:apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: "worker" name: 99-worker-kargs-mpath spec: kernelArguments: - rd.multipath=default - root=/dev/disk/by-label/dm-mpath-root
使用之前创建的 master 或 worker YAML 文件创建新机器配置:
$ oc create -f ./99-master-kargs-mpath.yaml
检查机器配置以查看是否添加了新配置:
$ oc get MachineConfig
输出示例
NAME GENERATEDBYCONTROLLER IGNITIONVERSION AGE 00-master 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m 00-worker 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m 01-master-container-runtime 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m 01-master-kubelet 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m 01-worker-container-runtime 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m 01-worker-kubelet 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m 99-master-kargs-mpath 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 105s 99-master-generated-registries 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m 99-master-ssh 3.2.0 40m 99-worker-generated-registries 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m 99-worker-ssh 3.2.0 40m rendered-master-23e785de7587df95a4b517e0647e5ab7 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m rendered-worker-5d596d9293ca3ea80c896a1191735bb1 52dd3ba6a9a527fc3ab42afac8d12b693534c8c9 3.2.0 33m
检查节点:
$ oc get nodes
输出示例
NAME STATUS ROLES AGE VERSION ip-10-0-136-161.ec2.internal Ready worker 28m v1.20.0 ip-10-0-136-243.ec2.internal Ready master 34m v1.20.0 ip-10-0-141-105.ec2.internal Ready,SchedulingDisabled worker 28m v1.20.0 ip-10-0-142-249.ec2.internal Ready master 34m v1.20.0 ip-10-0-153-11.ec2.internal Ready worker 28m v1.20.0 ip-10-0-153-150.ec2.internal Ready master 34m v1.20.0
您可以发现,在应用更改时每个 worker 节点上的调度都会被禁用。
前往其中一个 worker 节点并列出内核命令行参数(主机上的
/proc/cmdline
中),以检查内核参数确实已发挥作用:$ oc debug node/ip-10-0-141-105.ec2.internal
输出示例
Starting pod/ip-10-0-141-105ec2internal-debug ... To use host binaries, run `chroot /host` sh-4.2# cat /host/proc/cmdline ... rd.multipath=default root=/dev/disk/by-label/dm-mpath-root ... sh-4.2# exit
您应该看到添加的内核参数。