2.4. 添加主机
您可以通过运行 scaleup.yml playbook 添加新主机到集群。此 playbook 查询 master,为新主机生成和发布新证书,然后仅在新主机上运行配置 playbook。在运行 scaleup.yml playbook 之前,请完成所有必备的主机准备步骤。
scaleup.yml playbook 仅配置新主机。它不会更新 master 服务的 NO_PROXY,也不会重启 master 服务。
您必须有一个现有的清单文件,如 /etc/ansible/hosts,它代表当前集群配置,才能运行 scaleup.yml playbook。如果您之前使用 atomic-openshift-installer
命令来运行安装,您可以检查 ~/.config/openshift/hosts 查找安装程序生成的最后一个清单文件,并将该文件用作清单文件。您可以根据需要修改此文件。然后,在运行 ansible-playbook
时,您必须使用 -i
指定文件位置。
有关推荐的最大节点数,请参阅集群最大值部分。
流程
通过更新 openshift-ansible 软件包来确保您有最新的 playbook:
yum update openshift-ansible
# yum update openshift-ansible
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 /etc/ansible/hosts 文件,并将 new_<host_type> 添加到 [OSEv3:children] 部分。例如,要添加新节点主机,请添加 new_nodes :
[OSEv3:children] masters nodes new_nodes
[OSEv3:children] masters nodes new_nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 若要添加新的 master 主机,可添加 new_masters。
创建一个 [new_<host_type>] 部分来为新主机指定主机信息。将此部分格式化为现有部分,如下例所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需了解更多选项,请参阅配置主机变量。
在添加新 master 时,将主机添加到 [new_masters] 部分和 [new_nodes] 部分,以确保新 master 主机是 OpenShift SDN 的一部分:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果您使用
node-role.kubernetes.io/infra=true
标签标记 master 主机,且没有其他专用基础架构节点,还必须通过向条目中添加openshift_schedulable=true
明确将该主机标记为可以调度。否则,registry 和路由器 Pod 将无法放置到任何节点。更改到 playbook 目录,再运行 openshift_node_group.yml playbook。如果您的清单文件位于 /etc/ansible/hosts 默认以外的位置,请使用
-i
选项指定位置:cd /usr/share/ansible/openshift-ansible ansible-playbook [-i /path/to/file] \ playbooks/openshift-master/openshift_node_group.yml
$ cd /usr/share/ansible/openshift-ansible $ ansible-playbook [-i /path/to/file] \ playbooks/openshift-master/openshift_node_group.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会为新节点组创建 ConfigMap,并最终为主机上的节点配置文件。
注意运行 openshift_node_group.yaml playbook 只会更新新节点。无法运行它来更新集群中的现有节点。
运行 scaleup.yml playbook。如果您的清单文件位于默认 /etc/ansible/hosts 以外的位置,请使用
-i
选项指定位置。对于额外的节点:
ansible-playbook [-i /path/to/file] \ playbooks/openshift-node/scaleup.yml
$ ansible-playbook [-i /path/to/file] \ playbooks/openshift-node/scaleup.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于额外的 master:
ansible-playbook [-i /path/to/file] \ playbooks/openshift-master/scaleup.yml
$ ansible-playbook [-i /path/to/file] \ playbooks/openshift-master/scaleup.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您在集群中部署了 EFK 堆栈,请将节点标签设置为
logging-infra-fluentd=true
:oc label node/new-node.example.com logging-infra-fluentd=true
# oc label node/new-node.example.com logging-infra-fluentd=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 在 playbook 运行后,验证安装。
将您在 [new_<host_type>] 部分定义的任何主机移动到它们的相应部分。通过移动这些主机,后续的 playbook 运行使用此清单文件正确处理节点。您可以保留空 [new_<host_type>] 部分。例如,添加新节点时:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow