16.8. 阻止列出节点
您可以阻止 overcloud 节点获得更新的部署内容。这在某些情况下非常有用,比如,您想要扩展新节点,并阻止现有节点获得核心 heat 模板集合中更新的参数和资源集合。这意味着列入黑名单的节点与堆栈操作的影响隔离。
使用环境文件中的 DeploymentServerBlacklist 参数来创建 blocklist。
设置块列表
DeploymentServerBlacklist 参数是服务器名称列表。可以将其写入新的环境文件,或将参数值添加到现有的自定义环境文件,然后将此文件传递给部署命令:
parameter_defaults:
DeploymentServerBlacklist:
- overcloud-compute-0
- overcloud-compute-1
- overcloud-compute-2
parameter_defaults:
DeploymentServerBlacklist:
- overcloud-compute-0
- overcloud-compute-1
- overcloud-compute-2
参数值中的服务器名称是由 OpenStack Orchestration (heat) 规定的名称,并非实际的服务器主机名。
将此环境文件包含到 openstack overcloud deploy 命令中:
source ~/stackrc openstack overcloud deploy --templates \ -e server-blocklist.yaml \ -e [...]
$ source ~/stackrc
$ openstack overcloud deploy --templates \
-e server-blocklist.yaml \
-e [...]
Heat 阻止列表中任何服务器从接收更新的 heat 部署列表。在堆栈操作完成后,任何列入黑名单的服务器都会保持不变。您也可以在操作过程中关闭或停止 os-collect-config 代理。
- 当您阻止列出节点时,请小心谨慎。只有在您完全了解如何使用块列表应用请求的更改时,才使用 blocklist。在使用 blocklist 功能时,可以创建挂起堆栈或配置 overcloud。例如,如果集群配置更改应用到 Pacemaker 集群的所有成员,在此更改时阻止 Pacemaker 集群成员列出可能会导致集群失败。
- 不要在更新或升级过程中使用 blocklist。这些过程本身有一些方法可将更改操作与特定服务器进行隔离。
-
将服务器添加到 blocklist 时,不支持进一步更改这些节点,直到您从 blocklist 中删除服务器。这包括更新、升级、扩展、缩减和节点替换等操作。例如,当您在使用新的 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 部署命令,如 清除 Blocklist 部分所述。
清除块列表
要清除 blocklist 用于后续的堆栈操作,请编辑 DeploymentServerBlacklist 以使用空数组:
parameter_defaults: DeploymentServerBlacklist: []
parameter_defaults:
DeploymentServerBlacklist: []
不要省略 DeploymentServerBlacklist 参数。如果省略该参数,overcloud 部署将使用先前保存的参数值。