8.4. 扩展集群
部署安装程序置备的 OpenShift Container Platform 集群后,您可以使用以下步骤扩展 worker 节点的数量。确保每个 worker 节点都满足先决条件。
使用 RedFish Virtual Media 扩展集群需要满足最低固件要求。有关使用 RedFish Virtual Media 扩展集群的详情,请参阅先决条件部分中的使用虚拟介质安装的固件要求的详情。
8.4.1. 准备裸机节点
扩展集群需要 DHCP 服务器。每个节点都必须有 DHCP 保留。
有些管理员更喜欢使用静态 IP 地址,以便在没有 DHCP 服务器时每个节点的 IP 地址保持恒定状态。要在 OpenShift Container Platform 集群中使用静态 IP 地址,请在 DHCP 服务器中保留 IP 地址且租期不限。安装程序成功置备节点后,分配程序脚本将检查节点的网络配置。如果分配程序脚本发现网络配置包含 DHCP 无限租期,它将使用 DHCP 无限租期中的 IP 地址重新创建连接作为静态 IP 连接。没有 DHCP 无限租期的 NIC 将保持未修改的状态。
使用 Machine Config Operator 设置带有无限租期的 IP 地址与部署的网络配置不兼容。
准备裸机节点需要从 provisioner 节点执行以下步骤。
流程
如果需要,获取
oc
二进制文件。它应该已存在于 provisioner 节点上。[kni@provisioner ~]$ curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/openshift-client-linux-$VERSION.tar.gz | tar zxvf - oc
[kni@provisioner ~]$ sudo cp oc /usr/local/bin
- 通过基板管理控制器关闭裸机节点,并确保它已关闭。
检索裸机节点基板管理控制器的用户名和密码。然后,从用户名和密码创建
base64
字符串。在下面的示例中,用户名是root
用户,密码是calvin
。[kni@provisioner ~]$ echo -ne "root" | base64
[kni@provisioner ~]$ echo -ne "calvin" | base64
为裸机节点创建配置文件。
[kni@provisioner ~]$ vim bmh.yaml
--- apiVersion: v1 kind: Secret metadata: name: openshift-worker-<num>-bmc-secret type: Opaque data: username: <base64-of-uid> password: <base64-of-pwd> --- apiVersion: metal3.io/v1alpha1 kind: BareMetalHost metadata: name: openshift-worker-<num> spec: online: true bootMACAddress: <NIC1-mac-address> bmc: address: <protocol>://<bmc-ip> credentialsName: openshift-worker-<num>-bmc-secret
在
name
字段和credentialsName
字段中,使用裸机节点的 worker 数量替换<num>
。将<base64-of-uid>
替换为用户名的base64
字符串。将<base64-of-pwd>
替换为密码的base64
字符串。将<NIC1-mac-address>
替换为裸机节点第一个 NIC 的 MAC 地址。如需了解更多 BMC 配置选项,请参阅 BMC 寻址部分。将
<protocol>
替换为 BMC 协议(如 IPMI、RedFish 或其他)。将<bmc-ip>
替换为裸机节点基板管理控制器的 IP 地址。注意如果现有裸机节点的 MAC 地址与您要置备的裸机主机的 MAC 地址匹配,则 Ironic 安装将失败。如果主机注册、检查、清理或其他 Ironic 步骤失败,Bare Metal Operator 会持续重试安装。如需更多信息,请参阅诊断主机重复的 MAC 地址。
创建裸机节点。
[kni@provisioner ~]$ oc -n openshift-machine-api create -f bmh.yaml
secret/openshift-worker-<num>-bmc-secret created baremetalhost.metal3.io/openshift-worker-<num> created
其中
<num>
是 worker 号。启动并检查裸机节点。
[kni@provisioner ~]$ oc -n openshift-machine-api get bmh openshift-worker-<num>
其中
<num>
是 worker 节点号。NAME STATUS PROVISIONING STATUS CONSUMER BMC HARDWARE PROFILE ONLINE ERROR openshift-worker-<num> OK ready ipmi://<out-of-band-ip> unknown true
8.4.1.1. 诊断在集群中置备新主机时的重复 MAC 地址
如果集群中的现有裸机恢复节点的 MAC 地址与您要添加到集群中的裸机主机的 MAC 地址匹配,Bare Metal Operator 会将主机与现有节点关联。如果主机注册、检查、清理或其他 Ironic 步骤失败,Bare Metal Operator 会持续重试安装。此时会显示失败的裸机主机的注册错误。
您可以通过检查 openshift-machine-api
命名空间中运行的裸机主机来诊断重复的 MAC 地址。
先决条件
- 在裸机上安装 OpenShift Container Platform 集群。
-
安装 OpenShift Container Platform CLI
oc
。 -
以具有
cluster-admin
特权的用户身份登录。
流程
要确定置备失败的裸机主机是否具有与现有节点相同的 MAC 地址,请执行以下操作:
获取在
openshift-machine-api
命名空间中运行的裸机主机:$ oc get bmh -n openshift-machine-api
输出示例
NAME STATUS PROVISIONING STATUS CONSUMER openshift-master-0 OK externally provisioned openshift-zpwpq-master-0 openshift-master-1 OK externally provisioned openshift-zpwpq-master-1 openshift-master-2 OK externally provisioned openshift-zpwpq-master-2 openshift-worker-0 OK provisioned openshift-zpwpq-worker-0-lv84n openshift-worker-1 OK provisioned openshift-zpwpq-worker-0-zd8lm openshift-worker-2 error registering
要查看有关失败主机状态的详细信息,请运行以下命令将
<bare_metal_host_name>
替换为主机名称:$ oc get -n openshift-machine-api bmh <bare_metal_host_name> -o yaml
输出示例
... status: errorCount: 12 errorMessage: MAC address b4:96:91:1d:7c:20 conflicts with existing node openshift-worker-1 errorType: registration error ...