16.8. 将节点列入黑名单

您可以阻止 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 部署将使用先前保存的参数值。