Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

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 值替换为 DELETEDUNUSED 等值。不应从 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]