19.7. 将节点列入黑名单
您可以阻止 overcloud 节点获得更新的部署内容。这在某些情况下非常有用,比如,您想要扩展新节点,并阻止现有节点获得核心 heat 模板集合中更新的参数和资源集合。这意味着列入黑名单的节点将完全不受栈操作的影响。
在环境文件中使用 DeploymentServerBlacklist
参数可创建黑名单。
设置黑名单
DeploymentServerBlacklist
参数是服务器名称列表。可以将其写入新的环境文件,或将参数值添加到现有的自定义环境文件,然后将此文件传递给部署命令:
parameter_defaults: DeploymentServerBlacklist: - overcloud-compute-0 - overcloud-compute-1 - overcloud-compute-2
参数值中的服务器名称是由 OpenStack Orchestration (heat) 规定的名称,并非实际的服务器主机名。
将此环境文件包含到 openstack overcloud deploy
命令中:
$ source ~/stackrc (undercloud) $ openstack overcloud deploy --templates \ -e server-blacklist.yaml \ [OTHER OPTIONS]
heat 会将列表中的任何服务器列入黑名单,阻止其获得更新的 heat 部署内容。在栈操作完成后,黑名单中的服务器不会发生任何变化。您也可以在操作过程中关闭或停止 os-collect-config
代理。
- 将节点列入黑名单时要非常谨慎。在使用黑名单前,必须完全清楚在有黑名单的情况下如何应用所要求的更改。在使用黑名单功能时,有可能造成栈停止工作,或对 overcloud 执行不正确的配置。例如,如果集群配置更改应用到 Pacemaker 集群的所有成员,那么在执行更改时将 Pacemaker 集群的某个成员列入黑名单就会导致集群出现问题。
- 不要在更新或升级过程中使用黑名单。这些过程本身有一些方法可将更改操作与特定服务器进行隔离。
-
将服务器加入黑名单后,不允许再对这些节点进行更改操作,除非将服务器从黑名单中移除。这包括更新、升级、扩展、缩减和节点替换等操作。例如,如果在使用新的 Compute 节点扩展 overcloud 时将现有 Compute 节点列入黑名单,则列入黑名单的节点会错过添加到
/etc/hosts
和/etc/ssh/ssh_known_hosts
中的信息。这可能导致实时迁移失败,具体取决于目标主机。在下一次 overcloud 部署过程中,利用添加到/etc/hosts
和/etc/ssh/ssh_known_hosts
中的信息更新 Compute 节点,这些节点不再列入黑名单。不要手动修改/etc/hosts
和/etc/ssh/ssh_known_hosts
文件。要修改/etc/hosts
和/etc/ssh/ssh_known_hosts
文件,请运行 overcloud 部署命令,如清除黑名单一节中所述。
清除黑名单
要清除黑名单以便对其中节点执行后续的栈操作,可编辑 DeploymentServerBlacklist
,使其成为空阵列:
parameter_defaults: DeploymentServerBlacklist: []
不要省略 DeploymentServerBlacklist
参数。如果省略该参数,overcloud 部署将使用先前保存的参数值。