第 8 章 基本网络隔离
配置 overcloud 以使用隔离网络,以便可以隔离托管特定类型的网络流量。Red Hat OpenStack Platform (RHOSP)包括一组环境文件,可用于配置此网络隔离。您可能还需要额外的环境文件来进一步自定义网络参数:
可用于启用网络隔离的环境文件(
/usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml
)。注意在使用 director 部署 RHOSP 前,文件
network-isolation.yaml
和network-environment.yaml
仅采用 Jinja2 格式,且具有.j2.yaml
扩展。director 在部署过程中将这些文件呈现到.yaml
版本。-
可用于配置网络默认值的环境文件(
/usr/share/openstack-tripleo-heat-templates/environments/network-environment.yaml
)。 -
可用于定义网络设置的
network_data
文件,如 IP 范围、子网和虚拟 IP。本例演示了如何创建默认副本并编辑它以适合您的网络。 - 用于为每个节点定义 NIC 布局的模板。overcloud 核心模板集合包含一组用于不同用例的默认值。
-
可用于启用 NIC 的环境文件。本例使用位于
environments
目录中的默认文件。
8.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::114
资源的资源 registry 声明。默认情况下,这些资源使用 OS::114::None
资源类型,它不创建任何网络。通过将这些资源重定向到每个网络的 YAML 文件,您可以启用创建这些网络。
接下来的几个部分为各个角色中的节点创建 IP 地址。控制器节点在每个网络上都有 IP。计算和存储节点各自在网络的子集上具有 IP。
overcloud 网络的其他功能,如 第 9 章 自定义可组合网络 和 第 10 章 自定义网络接口模板 依赖于 network-isolation.yaml
环境文件。因此,您必须在部署命令中包含呈现的环境文件:
$ openstack overcloud deploy --templates \ ... -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \ ...