8.3. 分配可预测 IP
为了进一步控制生成的环境,director 也可以为每个网络分配具有特定 IP 的 Overcloud 节点。在核心 Heat 模板集合中,使用 environment /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 节点的
NovaComputeIPs
。 -
Ceph Storage 节点的
CephStorageIPs
。 -
BlockStorageIPs
用于块存储节点。 -
Object
Storage 节点的 Swift
StorageIP。 -
[ROLE]IPs
用于自定义角色。将[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 地址不在网络环境文件中定义的每个网络的分配池之外(请参阅 第 7.2 节 “创建网络环境文件”)。例如,确保 internal_api
分配不在 InternalApiAllocationPools
范围之外。这可避免与自动选择的任何 IP 冲突。同样,请确保 IP 分配与 VIP 配置没有冲突,对于标准的可预测的 VIP 放置(请参阅 第 8.4 节 “分配可预测虚拟 IP”)或外部负载均衡(请参阅 第 14.1 节 “配置外部负载平衡”)。
如果删除了 overcloud 节点,请不要删除 IP 列表中的条目。IP 列表基于底层 Heat 索引,即使删除节点也不会改变。要在列表中指定给定条目已不再使用,请将 IP 值替换为值,如 DELETED
或 UNUSED
。不应从 IP 列表中删除条目,只更改或添加条目。
要在部署期间应用此配置,请使用 openstack overcloud deploy
命令包含 ips-from-pool-all.yaml
环境文件。
如果使用网络隔离(请参阅 第 7 章 隔离网络),在 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]