Kubernetes CNI: Antrea

发布于 2021-05-07 · 本文总共 3712 字 · 阅读大约需要 11 分钟

恭喜Antrea项目进入 CNCF Sandbox

2021年4月28日,经云原生计算基金会(CNCF)技术监督委员会(TOC)投票决议, 开源项目 Antrea 正式成为CNCF沙箱级项目(Sandbox Project)。

Antrea 项目是一个基于 Open vSwitch(OVS)的开源 Kubernetes CNI 网络插件解决方案,旨在为 Kubernetes 集群提供更高效、更安全的跨平台网络和安全策略。

Antrea Github 地址:https://github.com/antrea-io/antrea

项目介绍

Antrea Overview

Antrea最初于2019年11月在北美 Kubernetes大会上正式发布,是一个基于Kubernetes原生的开源项目,它实现了Kubernetes容器网络接口(CNI)和Kubernetes Service以及NetworkPolicy,从而为Pod工作负载提供网络通信和安全策略。

同时,Antrea将OVS的可编程网络优势应用到Kubernetes。

其主要优势包括:

1.跨平台、跨网络

支持x86、arm等异构硬件设备,可以轻松运行在Linux, windows操作系统,虚机或裸机,以及AWS, Google cloud, Azure和私有云上。

2.强大的安全特性

更高级灵活的网络安全策略,同时支持IPsec加密网络流量,为企业业务保驾护航。

3.可视化流量监控和故障定位能力

一目了然网络流量状态,一键部署容器网络,一站式故障诊断程序。

4.高性能,高可扩展性

在独立第三方的CNI性能评测中成绩优秀,可以支持数千计的节点和数十万计的Pod。

核心能力

Antrea 具备以下功能特点:

  • 基于Open vSwitch

Antrea基于OVS来实现所有网络功能,包括Kubernetes Service负载均衡,并启用智能硬件和硬件卸载能力(hardware offload)以支持最严苛的应用场景。

  • 兼容性

支持在私有云、公有云、边缘云和裸机(包括ARM设备)上运行Antrea,您可以根据自己的基础设施和实际情况选择合适的通信模式,包括路由模式、overlay模式及两者混合的模式。

  • 支持Windows节点

Antrea可以在Linux和Windows工作节点上使用相同的数据平面实现其功能。

  • 支持更全面的网络策略模型(Network Policy)

Antrea提供了全面的网络策略模型, 它在Kubernetes网络策略的基础上, 添加了很多新功能,例如策略层级(policy tiering),规则优先级、流量统计、流量日志和集群级策略。

  • 故障排查和监控工具包

Antrea带有CLI和UI工具包,可提供可视化和故障诊断能力(数据包跟踪,策略分析,流量监测)。可以展示Prometheus指标并支持导出网络流信息,以及在Kibana仪表板中可视化网络流。

  • 数据加密

使用IPsec对节点间Pod通信(overlay网络)进行加密。

  • Kubernetes原生

Antrea遵循Kubernetes最佳实践来扩展Kubernetes API,同时在其功能实现中尽可能复用Kubernetes库。

  • 一键部署

支持通过应用单个yaml配置文件来部署Antrea。

架构设计

Antrea 架构如下:

antrea architecture

Antrea 利用 OVS 作为网络数据平面,主要为 Kubernetes 集群提供二到四层的网络服务和安全特性。OVS是一种高性能可编程虚拟交换机,同时支持 Linux 和 Windows 。基于 OVS,Antrea 能够以更高效的方式实现 Pod 的网络连通、网络策略和服务负载均衡。借助OVS的“可编程”特性,Antrea 能够实现更高级广泛的网络服务和安全特性。

Antrea 的控制面基于 Kubernetes 原生技术,遵循 API 扩展最佳实践,并针对网络和安全功能特点做了许多优化。

在一个 Kubernetes 集群内,Antrea 以 Deployment 的形式部署运行中心控制器antrea-controller,以负责网络策略的解析转换、跨度(Span)计算,并能够以增量传输的方式向工作节点按需分发网络策略,以消除在每个工作节点上执行这一处理带来的计算、存储、传输开销。

在每个工作节点上,Antrea 以 DaemonSet 的形式部署运行 antrea-agent 和 OVS 用户态守护进程,并以 init container 的形式将 antrea-cni 插件安装到主机并加载 OVS 内核模块。antrea-agent 负责 OVS 网桥和 Pod网络接口的管理,并通过OpenFlow协议编程OVS来实现各种网络和安全功能。

此外,Antrea 带有命令行工具antctl和基于Octant的图形界面插件,提供了强大的故障诊断能力。

快速入门

Antrea GettingStarted

Antrea 的部署非常简单,部署Kubernetes集群之后,通过一键执行 kubectl apply -f https://raw.githubusercontent.com/vmware-tanzu/antrea/main/build/yamls/antrea.yml 即可安装Antrea的最新版本,也可以指定版本安装: kubectl apply -f https://github.com/vmware-tanzu/antrea/releases/download/<TAG>/antrea.yml, 具体可以查看:https://github.com/vmware-tanzu/antrea/blob/main/docs/getting-started.md。

客户案例

用例一:Glasnostic是一家年轻的高科技公司。专注于Kubernetes云原生运营服务,为用户提供更具弹性的云服务运营。其提供的Kubernetes集群服务支持更灵活的部署和运维操作,得益于在Kubernetes集群中使用Antrea的网络支持,DevOps和SRE团队可以快速、可靠的部署,降低故障率,提升客户使用体验。

用例二:Antrea被使用于VMware的devops内部云,用以支持数以万计的工程师开发和测试的需求。目前已经部署了多个集群,最大集群的规模达到数百工作节点,数万计的pod。

经过内部严格的规模测试,Antrea集群最大可以达到2000个节点,150000个Pod,40000个安全策略和10000个Kubernetes Service。

未来规划

Antrea 未来仍将以云原生为基础,持续快速迭代,进一步提升用户体验,为用户提供更高性能、更安全、更易运维的容器网络。Antrea 近期的规划包括:更全面的 Windows 节点支持、网络策略特性增强、网络诊断和监测、更加灵活的 IPAM 、 网络流量出口策略、NFV 和电信用例支持、 Kubernetes 节点安全、7层网络安全策略和可视化、 将 OVS 与 DPDK 或 AF_XDP 结合使用以实现更高性能等。

通过最新发布的 1.0 版本,你可以测试最新的特性,并参与讨论、设想下一个版本的新可能性。

社区活动

欢迎大家加入 Antrea 社区 github.com/antrea-io/antrea 。我们每两周会有一次社区会议,会议时间是周二的12点,非常适合国内开发者的参与。我们还开通了 Kubernetes 社区的 antrea 专属 slack 频道和微信群以及公众号(详情请见文章末尾二维码),希望小伙伴们积极参与讨论,贡献代码,多多实践和测试,共同推动 Kubernetes 容器网络和网络策略发展, 讨论更多 Antrea 新特性的规划, 为构建未来更高效的 Kubernetes CNI 一起努力。

CNCF

CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux Foundation,是非营利性组织。

CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。 通过将最前沿的模式民主化,让这些创新为大众所用。

原文链接

官宣!Antrea项目进入CNCF Sandbox

refs

https://antrea.io/

https://mp.weixin.qq.com/s/l3X_iDIxdR6kbdulL_WmcA

https://www.cncf.io/sandbox-projects/

https://www.cncf.io/online-programs/securing-and-accelerating-the-kubernetes-cni-data-plane-with-project-antrea-and-nvidia-mellanox-connectx-smartnics/

https://github.com/vmware-tanzu/antrea

https://github.com/vmware-tanzu/antrea/tree/main/docs

https://github.com/vmware-tanzu/antrea/blob/main/ROADMAP.md

https://github.com/vmware-tanzu/antrea/blob/main/docs/getting-started.md




本博客所有文章采用的授权方式为 自由转载-非商用-非衍生-保持署名 ,转载请务必注明出处,谢谢。
声明:
本博客欢迎转发,但请保留原作者信息!
博客地址:邱文奇(qiuwenqi)的博客;
内容系本人学习、研究和总结,如有雷同,实属荣幸!
阅读次数:

文章评论

comments powered by Disqus


章节列表