16.4. 在替换使用可预测的 IP 地址和 HostNameMap 的节点时保留主机名
如果将 overcloud 配置为使用可预测的 IP 地址,并且 HostNameMap 将基于 heat 的主机名映射到预置备节点的主机名,则必须配置 overcloud,以将新的替换节点索引映射到 IP 地址和主机名。
流程
-
以
stack用户的身份登录 undercloud。 Source
stackrc文件:source ~/stackrc
$ source ~/stackrcCopy 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。 将
<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 listCopy 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> 替换为在第 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 的新节点。