接续前篇《虚拟云网络系列 | 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 的架构,几个重点分别讨论:
上面架构图内大家可以看到每个 Kubernetes Node 内都有大大的 OVS (Open-vSwitch) 三个字,这是 Antrea 与其他方案最主要的差别:Antrea 使用 Open vSwitch 做为底层的核心构件。Open vSwitch 是一个开发长久、稳定、可编程的开源方案,具有下列特性:
同样在上图,大家可以看到每个 Kubernetes Node 内都有一个 Antrea Agent。这个 Antrea Agent 主要的工作是接收来自 Kubernetes API Server 以及 Antrea Controller 的指示,编写相关的网络与安全需求,再通过本地 OVS 来进行功能实现,比如说 Pod 与 Pod 间要通过 Geneve Tunnel 进行跨node网络连线,每个 Pod 本身的 Network Policy 等等。
此外,由于 Antrea 的一个重要功能是进行各个 Pod 间的进阶安全控制,此时需要一个构件能够:
因此在 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 各构件、甚至包含到外部系统间的完整关联:
架构面先简单谈到这边,如果大家对相关细节想进一步了解,可以参考下列文章,有详尽讨论:
这里特别花一篇推文来讨论架构,主要想要强调下面这几点:
虽然不同的 Container Network Interface 方案各有千秋,但 Antrea 具备上述谈到的特性包含构件成熟且功能完整、易于开发、易于整合外部系统的特性,也就成为了 VMware 支持容器方案的首选。尤其 VMware 本身在之前维护 Open vSwitch 开源项目上原本就有投资大量的开发团队与相关经验,继续进行 Antrea 的开发与维护也是水到渠成的。
先谈到这边,下篇我将和大家讨论 Antrea 的安装方式。
内容来源|公众号:VMware 中国研发中心
本文作者:Colin Jao (饶康立), VMware 资深技术顾问,主要负责 VMware NSX 产品线,目前致力于网络虚拟化、分布式安全防护技术与新应用递送方案的介绍与推广。
|