14.3. 分配可预测 IP
为进一步控制生成的环境,director 还可在每个网络上分配具有特定 IP 的 Overcloud 节点。在核心 Heat 模板集合中,使用 environments/ips-from-pool-all.yaml
环境文件。
将这个文件复制到 stack
用户的 templates
目录中。
$ cp /usr/share/openstack-tripleo-heat-templates/environments/ips-from-pool-all.yaml ~/templates/.
ips-from-pool-all.yaml
文件中有两个主要部分。
第一个是覆盖默认值的 resource_registry
引用集合。它们告诉 director 对节点类型的给定端口使用特定 IP。修改每个资源,以使用其对应模板的绝对路径。例如:
OS::TripleO::Controller::Ports::ExternalPort: /usr/share/openstack-tripleo-heat-templates/network/ports/external_from_pool.yaml OS::TripleO::Controller::Ports::InternalApiPort: /usr/share/openstack-tripleo-heat-templates/network/ports/internal_api_from_pool.yaml OS::TripleO::Controller::Ports::StoragePort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage_from_pool.yaml OS::TripleO::Controller::Ports::StorageMgmtPort: /usr/share/openstack-tripleo-heat-templates/network/ports/storage_mgmt_from_pool.yaml OS::TripleO::Controller::Ports::TenantPort: /usr/share/openstack-tripleo-heat-templates/network/ports/tenant_from_pool.yaml
默认配置将所有节点上的所有网络设置为使用预先分配的 IP。若要允许特定网络或节点类型使用默认 IP 分配,只需从环境文件中删除与该节点类型或网络相关的 resource_registry
条目。
第二个部分是 parameter_defaults,其中分配了实际的 IP 地址。每个节点类型都有一个关联的参数:
-
Controller 节点的
ControllerIP。 -
Compute 节点的
ComputeIP。 -
Ceph Storage 节点的
CephStorageIP
。 -
BlockStorageIPs
用于块存储节点。 -
对象存储
节点的 SwiftStorageIP
。 -
[ROLE]IP
用于自定义角色。用角色名称替换[ROLE]
。
每个参数都是一个到地址列表的网络名称映射。每种网络类型必须至少包含与该网络上节点相同的地址。director 会按顺序分配地址。每种类型的第一个节点接收各自列表中的第一个地址,第二个节点接收各个各个列表中的第二个地址,依此类推。
例如,如果 Overcloud 将包含三个 Ceph Storage 节点,CephStorageIPs 参数可能类似如下:
CephStorageIPs: storage: - 172.16.1.100 - 172.16.1.101 - 172.16.1.102 storage_mgmt: - 172.16.3.100 - 172.16.3.101 - 172.16.3.102
第一个 Ceph Storage 节点接收两个地址: 172.16.1.100 和 172.16.3.100。第二个地址接收 172.16.1.101 和 172.16.3.101,第三个则接收 172.16.1.102 和 172.16.3.102。相同的模式也适用于其他节点类型。
确保所选的 IP 地址不在网络环境文件中定义的每个网络的分配池之外(请参阅 第 11.7 节 “自定义网络环境文件”)。例如,确保 internal_api
分配在 InternalApiAllocationPools
范围之外。这可避免与所选 IP 相冲突。同样,请确保 IP 分配不会与 VIP 配置冲突,可以是标准的可预测 VIP 放置(请参阅 第 14.4 节 “分配可预测虚拟 IP”)或外部负载均衡(请参阅 第 23.2 节 “配置外部负载平衡”)。
如果删除了 overcloud 节点,请不要删除 IP 列表中的条目。IP 列表基于底层 Heat 索引,即使删除节点也是如此。要指定列表中给定条目不再被使用,请将 IP 值替换为 DELETED
或 UNUSED
等值。不应从 IP 列表中删除条目,只应更改或添加。
要在部署期间应用此配置,请使用 openstack overcloud deploy
命令包含 ips-from-pool-all.yaml
环境文件。
如果使用网络隔离,请在 network-isolation.yaml
文件后包含 ips-from-pool-all.yaml
文件。
例如:
$ openstack overcloud deploy --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ -e ~/templates/ips-from-pool-all.yaml \ [OTHER OPTIONS]