10.9. 手动扩展 control plane 机器
在裸机基础架构上安装集群时,您可以手动扩展到 4 或 5 个 control plane 节点。如果您需要从降级状态恢复集群,执行深入调试,或者在复杂场景中确保 control plane 的稳定性和安全性时,请考虑这种用例。
红帽支持仅在裸机基础架构上具有 4 个或 5 个 control plane 节点的集群。
10.9.1. 在集群中添加 control plane 节点 复制链接链接已复制到粘贴板!
在裸机基础架构上安装集群时,您可以手动扩展到 4 或 5 个 control plane 节点。此流程中的示例使用 node-5 作为新的 control plane 节点。
先决条件
- 已安装一个带有至少三个 control plane 节点的健康集群。
- 您已创建了单个 control plane 节点,您要作为安装后任务添加到集群中。
流程
输入以下命令为新的 control plane 节点检索待处理的证书签名请求(CSR):
oc get csr | grep Pending
$ oc get csr | grep PendingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令为 control plane 节点批准所有待处理的 CSR:
oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approve$ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs --no-run-if-empty oc adm certificate approveCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要您必须批准 CSR 才能完成安装。
输入以下命令确认 control plane 节点处于
Ready状态:oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在安装程序置备的基础架构中,etcd Operator 依赖于 Machine API 来管理 control plane 并确保 etcd 仲裁。然后,Machine API 使用
MachineCR 代表和管理底层 control plane 节点。创建
BareMetalHost和MachineCR,并将其链接到 control plane 节点的NodeCR。使用唯一
.metadata.name值创建BareMetalHostCR,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令应用
BareMetalHostCR:oc apply -f <filename>
$ oc apply -f <filename>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 <filename> 替换为
BareMetalHostCR 的名称。
使用以下示例中所示的唯一
.metadata.name值创建MachineCR:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<cluster_name>替换为特定集群的名称,如test-day2-1-6qv96。
运行以下命令来获取集群名称:
oc get infrastructure cluster -o=jsonpath='{.status.infrastructureName}{"\n"}'$ oc get infrastructure cluster -o=jsonpath='{.status.infrastructureName}{"\n"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令应用
MachineCR:oc apply -f <filename>
$ oc apply -f <filename>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<filename>替换为MachineCR 的名称。
通过运行
link-machine-and-node.sh脚本链接BareMetalHost、Machine和Node对象:将以下
link-machine-and-node.sh脚本复制到本地机器中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令使脚本可执行:
chmod +x link-machine-and-node.sh
$ chmod +x link-machine-and-node.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令运行脚本:
bash link-machine-and-node.sh node-5 node-5
$ bash link-machine-and-node.sh node-5 node-5Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意第一个
node-5实例代表计算机,第二个实例代表该节点。
验证
通过执行预先存在的 control plane 节点之一来确认 etcd 成员:
输入以下命令打开到 control plane 节点的远程 shell 会话:
oc rsh -n openshift-etcd etcd-node-0
$ oc rsh -n openshift-etcd etcd-node-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 列出 etcd 成员:
etcdctl member list -w table
# etcdctl member list -w tableCopy to Clipboard Copied! Toggle word wrap Toggle overflow
输入以下命令检查 etcd Operator 配置过程,直到完成为止。预期输出在
PROGRESSING栏下显示False。oc get clusteroperator etcd
$ oc get clusteroperator etcdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令确认 etcd 健康状况:
打开到 control plane 节点的远程 shell 会话:
oc rsh -n openshift-etcd etcd-node-0
$ oc rsh -n openshift-etcd etcd-node-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查端点健康状况。预期输出显示端点
是健康的。etcdctl endpoint health
# etcdctl endpoint healthCopy to Clipboard Copied! Toggle word wrap Toggle overflow
输入以下命令验证所有节点是否已就绪。预期输出显示每个节点条目旁边的
Ready状态。oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证集群 Operator 是否可用。预期输出列出了每个 Operator,并在每个列出的 Operator 旁边显示可用状态为
True。oc get ClusterOperators
$ oc get ClusterOperatorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令验证集群版本是否正确:
oc get ClusterVersion
$ oc get ClusterVersionCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version OpenShift Container Platform.5 True False 5h57m Cluster version is OpenShift Container Platform.5
NAME VERSION AVAILABLE PROGRESSING SINCE STATUS version OpenShift Container Platform.5 True False 5h57m Cluster version is OpenShift Container Platform.5Copy to Clipboard Copied! Toggle word wrap Toggle overflow