17.6. 在替换使用可预测的 IP 地址和 HostNameMap 的节点时保留主机名
如果将 overcloud 配置为使用可预测的 IP 地址,并且 HostNameMap
将基于 heat 的主机名映射到预置备节点的主机名,则必须配置 overcloud,以将新的替换节点索引映射到 IP 地址和主机名。
流程
-
以
stack
用户的身份登录 undercloud。 Source
stackrc
文件:source ~/stackrc
$ source ~/stackrc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检索您要替换资源的
physical_resource_id
和removed_rsrc_list
:openstack stack resource show <stack> <role>
(undercloud)$ openstack stack resource show <stack> <role>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<stack>
替换为资源所属的堆栈的名称,如overcloud
。 将
&
lt;role> 替换为您要替换节点的角色的名称,如Compute
。输出示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
removed_rsrc_list
列出了已经为资源删除的节点索引。
-
将
检索
resource_name
,以确定 heat 应用到此资源节点的最大索引:openstack stack resource list <physical_resource_id>
(undercloud)$ openstack stack resource list <physical_resource_id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用在第 3 步中获取的 ID 替换
<physical_resource_id>
。
-
使用在第 3 步中获取的 ID 替换
使用
resource_name
和removed_rsrc_list
确定 heat 将应用到新节点的下一个索引:-
如果
removed_rsrc_list
为空,则下一个索引将是(current_maximum_index)+ 1。 -
如果
removed_rsrc_list
包含值(current_maximum_index)+ 1,则下一个索引将是下一个可用索引。
-
如果
检索替换裸机节点的 ID:
openstack baremetal node list
(undercloud)$ openstack baremetal node list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用新索引更新替换节点的功能:
openstack baremetal node set --property capabilities='node:<role>-<index>,boot_option:local' <node>
openstack baremetal node set --property capabilities='node:<role>-<index>,boot_option:local' <node>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
<role>
替换为您要替换节点的角色的名称,如compute
。 -
将 &
lt;index&
gt; 替换为在第 5 步中计算的索引。 -
将
<node>
替换为裸机节点的 ID。
计算调度程序使用节点功能与部署时的节点匹配。
-
将
通过在
HostnameMap
配置中添加索引来为新节点分配主机名,例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意不要删除从
HostnameMap
中删除的节点映射。将替换节点的 IP 地址添加到网络 IP 地址映射文件
ips-from-pool-all.yaml
中的每个网络 IP 地址列表的末尾。在以下示例中,新索引overcloud-controller-3
的 IP 地址添加到每个ControllerIPs
网络的 IP 地址列表中,并分配与overcloud-controller-1
相同的 IP 地址,因为它替换了overcloud-controller-1
。新索引overcloud-compute-8
的 IP 地址也添加到每个ComputeIPs
网络的 IP 地址列表中,并分配与它替换的索引相同的 IP 地址:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 分配给索引 0 的 IP 地址,主机名为
overcloud-controller-prod-123-0
。 - 2
- 分配给索引 1 的 IP 地址,主机名
overcloud-controller-prod-456-0
。此节点由索引 3 替代。不要删除此条目。 - 3
- 分配给索引 2 的 IP 地址,主机名为
overcloud-controller-prod-789-0
。 - 4
- 分配给索引 3 的 IP 地址,主机名为
overcloud-controller-prod-456-0
。这是替换索引 1 的新节点。 - 5
- 分配给索引 0 的 IP 地址,主机名为
overcloud-compute-0
。 - 6
- 分配给索引 1 的 IP 地址,主机名为
overcloud-compute-3
。此节点由索引 2 替代。不要删除此条目。 - 7
- 分配给索引 2 的 IP 地址,主机名为
overcloud-compute-8
。这是替换索引 1 的新节点。