第 9 章 基本网络隔离
本章介绍了如何使用标准网络隔离配置 overcloud。这包括:
-
用于启用网络隔离的渲染环境文件(
/usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml
)。 -
一个复制的环境文件来配置网络默认值(
/usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml
)。 -
用于定义网络设置的
network_data
文件,如 IP 范围、子网和虚拟 IP。本例演示了如何创建默认副本并编辑它以适应您自己的网络。 - 为每个节点定义 NIC 布局的模板。overcloud 核心模板集合包含一组用于不同用例的默认值。
-
启用 NIC 的环境文件。本例使用位于
环境
目录中的默认 文件。 - 自定义您的网络参数的任何其他环境文件。
运行 openstack overcloud netenv validate
命令,以验证您的 network-environment.yaml
文件的语法。此命令还会验证用于计算、控制器、存储和可组合角色网络文件的独立 nic-config 文件。使用 -f
或 --file
选项指定您要验证的文件:
$ openstack overcloud netenv validate -f ~/templates/network-environment.yaml
本章中的以下内容演示了如何定义各个方面:
9.1. 网络隔离
overcloud 默认为 provisioning 网络分配服务。但是,director 可以将 overcloud 网络流量划分为隔离的网络。要使用隔离的网络,overcloud 包含可启用此功能的环境文件。核心 heat 模板中的 environments/network-isolation.j2.yaml
文件是一个 Jinja2 文件,该文件在可组合网络文件中为每个网络定义所有端口和 VIP。在呈现时,它会使用完整资源 registry 在同一位置生成一个 network-isolation.yaml
文件:
resource_registry: # networks as defined in network_data.yaml OS::TripleO::Network::Storage: ../network/storage.yaml OS::TripleO::Network::StorageMgmt: ../network/storage_mgmt.yaml OS::TripleO::Network::InternalApi: ../network/internal_api.yaml OS::TripleO::Network::Tenant: ../network/tenant.yaml OS::TripleO::Network::External: ../network/external.yaml # Port assignments for the VIPs OS::TripleO::Network::Ports::StorageVipPort: ../network/ports/storage.yaml OS::TripleO::Network::Ports::StorageMgmtVipPort: ../network/ports/storage_mgmt.yaml OS::TripleO::Network::Ports::InternalApiVipPort: ../network/ports/internal_api.yaml OS::TripleO::Network::Ports::ExternalVipPort: ../network/ports/external.yaml OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/vip.yaml # Port assignments by role, edit role definition to assign networks to roles. # Port assignments for the Controller OS::TripleO::Controller::Ports::StoragePort: ../network/ports/storage.yaml OS::TripleO::Controller::Ports::StorageMgmtPort: ../network/ports/storage_mgmt.yaml OS::TripleO::Controller::Ports::InternalApiPort: ../network/ports/internal_api.yaml OS::TripleO::Controller::Ports::TenantPort: ../network/ports/tenant.yaml OS::TripleO::Controller::Ports::ExternalPort: ../network/ports/external.yaml # Port assignments for the Compute OS::TripleO::Compute::Ports::StoragePort: ../network/ports/storage.yaml OS::TripleO::Compute::Ports::InternalApiPort: ../network/ports/internal_api.yaml OS::TripleO::Compute::Ports::TenantPort: ../network/ports/tenant.yaml # Port assignments for the CephStorage OS::TripleO::CephStorage::Ports::StoragePort: ../network/ports/storage.yaml OS::TripleO::CephStorage::Ports::StorageMgmtPort: ../network/ports/storage_mgmt.yaml
此文件的第一部分具有 OS::TripleO::Network::*
资源的资源 registry 声明。默认情况下,这些资源使用 OS::Heat::None
资源类型,这不会创建任何网络。通过将这些资源重定向到每个网络的 YAML 文件,您可以启用创建这些网络。
接下来的几个部分为每个角色中的节点创建 IP 地址。控制器节点在每个网络上都有 IP。计算和存储节点,各自在网络子集中都有 IP。
overcloud 网络的其他功能,如 第 10 章 自定义可组合网络 和 第 11 章 自定义网络接口模板 依赖于此网络隔离环境文件。因此,您需要使用部署命令包含所生成的文件的名称。例如:
$ openstack overcloud deploy --templates \ ... -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ ...