[ 英语 | 印度尼西亚语 | 俄语 ]

容器网络

OpenStack-Ansible 部署 Linux 容器 (LXC),并使用 Linux 或 Open vSwitch 基桥在容器和主机接口之间建立连接,以确保来自容器的所有流量都通过多个主机接口。此部署模型中的所有服务都使用一个唯一的 IP 地址。

本附录描述了接口的连接方式以及流量的流向。

有关 OpenStack Networking 服务 (Neutron) 如何使用接口进行实例流量的更多信息,请参阅 OpenStack Networking 指南

有关环境网络配置的详细信息,请参阅 openstack_user_config 设置参考

物理主机接口

在典型的生产环境中,物理网络接口通常组合成绑定对,以提高冗余性和吞吐量。避免在同一个多端口网卡上使用两个端口作为同一个绑定接口,因为网卡故障会影响绑定所使用的两个物理网络接口。支持使用单个(绑定)接口的配置,但需要使用 VLAN 子接口。

Linux 桥接/交换机

容器和灵活部署选项的组合需要实现高级 Linux 网络功能,例如桥接、交换机和命名空间。

  • 桥接在主机内的物理、逻辑和虚拟网络接口之间提供第二层连接(类似于物理交换机)。创建桥接/交换机后,网络接口将虚拟地插入其中。

    OpenStack-Ansible 使用 Linux 桥接用于与 LXC 容器的控制平面连接,并且可以使用 Linux 桥接或基于 Open vSwitch 的桥接用于数据平面连接,从而将虚拟机实例连接到物理网络基础设施。

  • 网络命名空间在主机内提供逻辑上独立的第三层环境(类似于 VRF)。命名空间使用虚拟接口与其他命名空间连接,包括主机命名空间。这些接口通常称为 veth 对,它们以类似于连接物理设备(如交换机和路由器)的跳线的方式插入命名空间之间。

    每个容器都有一个命名空间,通过一个或多个 veth 对连接到主机命名空间。除非另有说明,系统会为 veth 对生成随机名称。

下图演示了容器网络接口如何连接到主机的桥接和物理网络接口

../../_images/networkcomponents.drawio.png

网络图

运行容器服务的宿主机

下图显示了所有接口和桥接如何互连,以提供 OpenStack 部署的网络连接

../../_images/networkarch-container-external.drawio.png

桥接 lxcbr0 会自动配置,并通过 dnsmasq (dhcp/dns) + NAT 为容器(通过 eth0)提供到外部世界的连接。

注意

如果您需要为容器接口配置额外的网络配置(例如更改 eth1 上的路由以用于管理网络的路由),请调整您的 openstack_user_config.yml 文件。有关更多详细信息,请参阅 openstack_user_config 设置参考

Neutron 流量

常见的参考驱动程序,包括 ML2/OVS 和 ML2/OVN,及其各自的代理,负责管理每个节点上的虚拟网络基础设施。OpenStack-Ansible 将 Neutron 流量称为“数据平面”流量,并且可以由 flat、VLAN 或 overlay 技术(如 VXLAN 和 Geneve)组成。

Neutron 代理可以部署在各种主机上,但通常限制在专用网络主机或基础设施主机(控制器节点)上。Neutron 代理部署在“裸机”上,而不是在 LXC 容器内。Neutron 通常要求操作员定义“提供程序桥接映射”,将提供程序网络名称映射到物理接口。这些提供程序桥接映射提供了灵活性,并在创建提供程序网络时抽象了物理接口名称。

Open vSwitch/OVN 示例

bridge_mappings = physnet1:br-ex

OpenStack-Ansible 在定义提供程序网络时提供了两个覆盖,可用于创建映射,并在某些情况下将物理接口连接到提供程序桥接

  • host_bind_override

  • network_interface

当组件部署在裸机主机上时,host_bind_override 键用于将 LXC 相关接口名称替换为物理接口名称。它将用于填充 Neutron 的 network_mappings

对于基于 Open vSwitch 和 OVN 的部署,network_interface 覆盖用于 Open vSwitch 和 OVN 基部署,需要一个物理接口名称,该名称将连接到提供程序桥接(例如 br-ex)以用于 flat 和 vlan 基提供程序和项目网络流量。

注意

OpenStack-Ansible 的早期版本使用名为 br-vlan 的桥接用于 flat 和 vlan 基提供程序和项目网络流量。br-vlan 桥接是容器化 Neutron 代理的遗留物,不再有用或推荐。

下图反映了受支持的网络体系结构中虚拟网络布局的差异。

开放虚拟网络 (OVN)

注意

从 OpenStack-Ansible 的 Zed 版本开始,默认部署 ML2/OVN 机制驱动程序。

网络节点
../../_images/networking-ovn-nn.drawio.png
计算节点
../../_images/networking-ovn-cn.drawio.png

Open vSwitch (OVS)

网络节点
../../_images/networking-openvswitch-nn.drawio.png
计算节点
../../_images/networking-openvswitch-cn.drawio.png