接续前篇《虚拟云网络系列 | Antrea 应用于 VMware 方案功能简介(一)》,这篇推文内我想简单与大家讨论 Antrea 作为 VMware 主要支持的 Container Network Interface,相关的构件以及与其他竞争方案的差异。近几年随着 Kubernetes 的技术发展,Container Network Interface 这边的相关项目也百花齐放,从早期的 Flannel / Weave / OVN 到目前主流的 Calico / Cilium,包含 VMware 本身 NSBU 之前也在 NSX 开发了 NCP (NSX Container Platform),各有各的特长。那目前 VMware / Tanzu 在商用支持上主要采用 Antrea,是因为 Antrea 有哪些优势呢?这篇简单与大家说明。
首先我们看一下 Antrea 的架构,几个重点分别讨论:
1.Antrea 采用 Open-vSwitch 作为核心网络构件
上面架构图内大家可以看到每个 Kubernetes Node 内都有大大的 OVS (Open-vSwitch) 三个字,这是 Antrea 与其他方案最主要的差别:Antrea 使用 Open vSwitch 做为底层的核心构件。Open vSwitch 是一个开发长久、稳定、可编程的开源方案,具有下列特性:
- 方案成熟,Open vSwitch 早在 NSX 前身Nicira 时代就完整商用化,目前也已经是 Linux Kernel 的内建模块。
- 作为开源 SDN(Software Define Network)的核心构件,开发者可以很轻易地透过 Open vSwitch(藉由OVSDB / Openflow)启用多种企业需要的安全及网络功能,远多于原生 Kubernetes 基础定义的需求。
- 可以运作在 Linux 及 Windows 操作系统,因此具备完整可携性。在客户要将 Kubernetes Cluster 部署于不同公私有云,不同操作系统上时,Antrea 均能轻易支持。
2.Antrea 具备 controller-agent 的控制 / 转发设计
同样在上图,大家可以看到每个 Kubernetes Node 内都有一个 Antrea Agent。这个 Antrea Agent 主要的工作是接收来自 Kubernetes API Server 以及 Antrea Controller 的指示,编写相关的网络与安全需求,再通过本地 OVS 来进行功能实现,比如说 Pod 与 Pod 间要通过 Geneve Tunnel 进行跨node网络连线,每个 Pod 本身的 Network Policy 等等。
此外,由于 Antrea 的一个重要功能是进行各个 Pod 间的进阶安全控制,此时需要一个构件能够:
- 透过 Kubernetes API 收集 Pod/Namespace/Service 的状态。
- 提供 API 让外部系统可呼叫来配置进阶安全策略。
- 于此构件将进阶安全策略配送到需求 Kubernetes Node 上的 Antrea Agent,呼叫各自的 OVS 进行安全政策实现。
因此在 Antrea 部署时,除了每个 K8S node 上都会有 Antrea Agent 外,还会于 Master Nodes 上安装一个 Controller Pod。下图是我在 Lab 内建置,具有一个 Master Node,三个 Worker Nodes 的 Kubernetes Cluster。可以看到当 Antrea 安装完成,每个 Node 上面都有一个Antrea Agent (共四个),除此之外还有一个antrea-controller pod 配置,负责上述讨论的提供进阶的安全控制与外部系统接取功能。
如果大家对细部的 Antrea / Kubernetes 构件间关系有兴趣,可以参考下列这张图,包含了 Antrea 各构件、Kubernetes 各构件、甚至包含到外部系统间的完整关联:
架构面先简单谈到这边,如果大家对相关细节想进一步了解,可以参考下列文章,有详尽讨论:
这里特别花一篇推文来讨论架构,主要想要强调下面这几点:
- 透过采用 Open vSwitch 成熟技术作为核心骨干,Antrea 能够容易地做到跨操作系统、甚至在不同公私有云平台的快速支持。
- 同时,由于之前在 Open vSwitch 上已经累积的大量经验,Antrea 项目能够快速地应用 Open vSwitch 本身已支持的功能,呼应企业需求,在短期内就能够透过 Open vSwitch 现有机制将新功能实现出来。
- 藉由 Antrea Controller 的设计,能够实作出较传统 Network Policy 远为复杂的安全政策机制,同时也能够很简单地提供外部系统(如后面我们要讨论的 NSX,或整合另一个著名的开源维运工具 OCTANT)来进行政策配置与资讯查找。
虽然不同的 Container Network Interface 方案各有千秋,但 Antrea 具备上述谈到的特性包含构件成熟且功能完整、易于开发、易于整合外部系统的特性,也就成为了 VMware 支持容器方案的首选。尤其 VMware 本身在之前维护 Open vSwitch 开源项目上原本就有投资大量的开发团队与相关经验,继续进行 Antrea 的开发与维护也是水到渠成的。
先谈到这边,下篇我将和大家讨论 Antrea 的安装方式。
内容来源|公众号:VMware 中国研发中心
本文作者:Colin Jao (饶康立), VMware 资深技术顾问,主要负责 VMware NSX 产品线,目前致力于网络虚拟化、分布式安全防护技术与新应用递送方案的介绍与推广。