Antrea

Antrea及Antrea-IPAM技术分享

一 CNI简介

1.1 定义:CNI是一个CNCF项目,用于配置容器网络。CNI和K8s的联系:K8s是CNI支持的容器编排系统之一。CNI是K8s可以使用的其中一种网络解决方案。

1.2 组成
CNI项目由以下3个部分组成

  • CNI规范 https://github.com/containernetworking/cni/blob/master/SPEC.md
  • 基础库 https://github.com/containernetworking/cni
  • 官方插件 https://github.com/containernetworking/plugins/tree/master/plugins

1.3 插件的分类
CNI的插件整体分为官方插件和第三方插件:

  • CNI官方插件
    • Main:构建配置网络接口
    • IPAM :IP地址管理
    • Meta:其他的插件端口映射,Qos等
  • 第三方插件
    • Antrea
    • Cilium
    • Kube-OVN
    • Calico

Antrea可以认为是Main类型的插件,Antrea-IPAM是IPAM插件。

1.4 CNI代理调用和CNI调用链

CNI代理调用是指一个CNI插件在执行过程中调用另一个CNI插件的过程。如下配置中,bridge插件调用host-local插件申请释放IP。Antrea通过CNI代理调用Antrea-IPAM。

CNI调用链是指kubelet/cri 按照配置顺序链式依次调用CNI插件。如下配置中,kubelet会依次调用bridge和portmap插件。

{
  "cniVersion": "1.0.0",
  "name": "dbnet",
  "plugins": [
    {
      "type": "bridge",
      // plugin specific parameters
      "bridge": "cni0",
      "keyA": ["some more", "plugin specific", "configuration"],

      "ipam": {
        "type": "host-local",
        // ipam specific
        "subnet": "10.1.0.0/16",
        "gateway": "10.1.0.1",
        "routes": [
            {"dst": "0.0.0.0/0"}
        ]
      },
      "dns": {
        "nameservers": [ "10.1.0.1" ]
      }
    },
    {
        "type": "portmap",
        "capabilities": {"portMappings": true}
    }
  ]
}

二 Antrea简介

Antrea是由VMware开源的K8s网络解决方案,符合CNI规范,以OVS为数据面。

主页:https://antrea.io/

github: https://github.com/antrea-io/antrea

2.1 与Kube-OVN对比

image

同样以OVS作为数据平面的CNI还有Kube-OVN(https://github.com/kubeovn/kube-ovn)。如上图,一个典型的SDN网络架构中,Antrea属于SDN控制器层,而Kube-OVN属于SDN网络应用层(与之对应的控制器是OVN)。两者在架构中的相对位置决定了Antrea的性能要优于Kube-OVN,功能则没有Kube-OVN丰富。

2.2 与其他主流CNI的性能测试对比

image

可以看到,从功能、性能、资源消耗综合来看,在考虑安全特性(即要求CNI具备网络策略和流量加密功能)的情况下Calico的表现最好,Antrea、Cilium、Weave次之,kube-router和Kube-OVN性能最差。
更加细节的数据可以到
https://docs.google.com/spreadsheets/d/12dQqSGI0ZcmuEy48nA0P_bPl7Yp17fNg7De47CYWzaM/edit#gid=1170887058

2.3 功能特性

1 提供了antctl命令行工具,集成了trace-packet等工具,易于诊断OVS网络问题

2 与VMware生态的产品集成较好,是VMware tanzu k8s的默认CNI,后期可能接入NSX

3 提供丰富的功能的同时兼顾网络拓扑简单、性能优异

三 软件架构及网络拓扑

https://github.com/antrea-io/antrea/blob/main/docs/design/architecture.md

四 OVS Pipline

https://github.com/antrea-io/antrea/blob/main/docs/design/ovs-pipeline.md

你可能感兴趣的:(Antrea)