Antrea v1.2.0 版本发布:支持 Egress 高可用

栏目: 软件资讯 · 发布时间: 2年前

内容简介:引言 Antrea 项目是一个基于 Open vSwitch(OVS)的开源 Kubernetes CNI 网络解决方案,旨在为 Kubernetes 集群提供更高效、更安全的跨平台网络和安全策略。Antrea Github 地址:https://github.com/antrea-io/an...

Antrea v1.2.0 版本发布:支持 Egress 高可用

引言

Antrea 项目是一个基于 Open vSwitch(OVS)的开源 Kubernetes CNI 网络解决方案,旨在为 Kubernetes 集群提供更高效、更安全的跨平台网络和安全策略。Antrea Github 地址:https://github.com/antrea-io/antrea

北京时间2021年07月16日,Antrea发布了新版本v1.2.0。NetworkPolicyStats 功能从 Alpha 升级到 Beta,因此默认启用。Antrea v1.2.0 Release文档:https://github.com/antrea-io/antrea/releases/tag/v1.2.0

Antrea v1.2.0 版本发布:支持 Egress 高可用

新增特性

本次发布的1.2.0版本新特性包括:

  • 添加新的 ExternalIPPool API 以定义可用作出口 SNAT IP 的 IP 地址范围;这些 IP 根据 nodeSelector 分配给节点,并在节点出现故障时自动故障转移;(#2236 #2237 #2186 #2358 #2345 #2371 , @tnqn @wenqiq ) 有关更多信息,请参阅 Antrea Egress 用户指南

  • Linux 上基于OpenFlow meters对OVS 数据面发送到 Antrea Agent的 PacketIn 消息进行限速;( #2215,@GraysonWu @antoninbas )

  • 从 FlowAggregator 导出流记录时,为源和目标 Pod(如果适用)添加 K8s 标签作为 IPFIX 信息元素;( #2240,@dreamtalen )

  • 使用antctl命令(antctl get featuregates)查看 Antrea Agent或Antrea Controller FeatureGates信息;(  #2082 , @luolanzone  )

  • Antrea Octant 插件支持重新运行最近一次 Traceflow 请求;( #2202,@Dhruv-J )

  • 支持为 Pod 配置额外的SR-IOV网络接口(这些接口没有连接到 OVS 网桥),相应的用户API将在接下来的版本中提供。( #2151,@ramay1 )

亮点一:更灵活的Egress IP 配置,支持Egress节点故障转移

添加新的 ExternalIPPool API 以定义可用作出口SNAT IP 的 IP地址范围;这些 IP 根据 nodeSelector 分配给节点,并在节点出现故障时支持故障转移;

Egress资源是用来管理集群内Pods的出口流量的CRD API。它支持为Pod访问外部网络的流量指定出口IP(SNAT IP)和出口节点。当Egress应用于某个Pod时,它的出口流量将通过隧道传输到配置有对应Egress IP的节点(如果Egress IP所在的节点不同于Pod运行的节点的话),并经过SNAT将数据包源地址转换为Egress IP。

示例:

创建一个external IP Pool,命名为external-ip-pool,指定其可用IP范围,且nodeSelector只选定“kind-worker2”:

- apiVersion: crd.antrea.io/v1alpha2  kind: ExternalIPPool  metadata:    name: external-ip-pool  spec:    ipRanges:    - start: 10.10.0.11  # 10.10.0.11-10.10.0.20 can be used as Egress IPs      end: 10.10.0.20    nodeSelector:       matchExpressions:      - key: kubernetes.io/hostname        operator: In        values: ["kind-worker2"]

创建Egress,命名为egress-prod-web,指定其external IPPool为刚创建的external-ip-pool:

apiVersion: crd.antrea.io/v1alpha2kind: Egressmetadata:  name: egress-prod-webspec:  appliedTo:    namespaceSelector:      matchLabels:        kubernetes.io/metadata.name: prod    podSelector:      matchLabels:        app: web  externalIPPool: external-ip-pool

查看Egress列表,看到系统在external-ip-pool指定的IP范围内自动为Egress分配了IP,并且将IP自动配置到了指定的节点“kind-worker2”:

# kubectl get egressNAME                 EGRESSIP       AGE   NODEegress-prod-web      10.10.0.11     1m    kind-worker2

更详细的指导文档请参考:https://github.com/antrea-io/antrea/blob/v1.2.0/docs/egress.md

亮点二:在 Linux 上使用 OpenFlow 计量器实现packet-in报文限速

在Linux上使用OpenFlow计量器, OVS 数据路径发送到Antrea agent的PacketIn消息进行速率限制。

亮点三:在流记录中添加 Pod 标签信息 

从FlowAggregator导出流记录时,为源和目标Pod(如果适用)添加 K8s 标签作为IPFIX信息元素;标签信息是网络策略推荐应用所必需的,还可以增强Kibana 仪表板上的可用性。

亮点四:使用“antctl get featuregates”命令查看特性启用

使用 antctl 命令(“antctl get featuregates”)打印 Antrea Agent 和/或 Antrea Controller FeatureGates信息;

示例:

# antctl get featuregatesAntrea Agent Feature GatesFEATUREGATE              STATUS         VERSIONAntreaProxy              Enabled        BETAEgress                   Disabled       ALPHAEndpointSlice            Disabled       ALPHATraceflow                Enabled        BETAFlowExporter             Disabled       ALPHANetworkPolicyStats       Disabled       ALPHANodePortLocal            Disabled       ALPHAAntreaPolicy             Enabled        BETA
Antrea Controller Feature GatesFEATUREGATE              STATUS         VERSIONNetworkPolicyStats       Disabled       ALPHAAntreaPolicy             Enabled        BETAEgress                   Disabled       ALPHATraceflow                Enabled        BETA

 

Antrea v1.2.0 版本发布:支持 Egress 高可用

其他修改

新版本除了以上新特性外,还包括以下修改:

  • 在 Service 上启用 NodePortLocal 时,使用 Service 的目标端口而不是所选 Pod 的(可选)容器端口来确定如何为 Pod 配置端口转发。(#2222,@monotosh-avi)

  • 更新go-ipfix依赖项的版本以提高 FlowExporter 性能。(#2129,@zyiou)

  • 根据我们的 API 弃用策略删除弃用的API版本networking.antrea.tanzu.vmware.com/v1beta1。( #2265 , @hangyan )

  • 当 Antrea 在 OVS 中执行 SNAT 时,在Traceflow observations中显示转换的源 IP 地址。( #2227 , @luolanzone )

  • 从 FlowAggregator 导出的流记录中删除不必要的 IPFIX 信息元素:“originalExporterIPv4Address”、“originalExporterIPv6Address”和“originalObservationDomainId”。(#2361,@zyiou)

  • NodePortLocal 忽略非 TCP 服务端口,更新文档中关于支持协议的限制。(#2396,@antoninbas)

  • 使用 OVS 用户空间数据路径(KinD集群)时,在 PREROUTING(使用 iptables)中丢弃上行链路接收到的数据包,以防止节点的TCP/IP协议栈处理这些数据包。(#2143,@antoninbas)

  • 改进Antrea原生网络策略文档,添加关于 Antrea v1.1 ClusterNetworkPolicy API 引入的“namespace”字段的介绍。(#2271,@abhiraut)

Antrea v1.2.0 版本发布:支持 Egress 高可用

问题修复

新版本还包括以下问题修复:

  • 修复禁用 AntreaProxy 时的节点间 ClusterIP 服务访问问题。(#2318,@tnqn)

  • 修复在双栈集群中使用 IPv4 和 IPv6 Service组合时 AntreaProxy 中重复的组 ID 分配,这导致了Service连接问题。( #2317 , @hongliangl )

  • 修复同时启用AntreaProxy和Egress 时节点内 ClusterIP 服务访问问题。(#2332,@tnqn)

  • 修复大规模集群中GroupEntityIndex(在 Antrea Controller 中)初始化时的死锁;这导致了 NetworkPolicies不能正确分发和执行。(#2376,@tnqn)

  • 修复包含空“From”字段(对于入口规则)或空“To”字段(对于出口规则)的ClusterNetworkPolicy的处理。(#2383,@Dyanngg)

  • 在 Windows 上使用“os/exec”包替换第三方库来运行 PowerShell 命令配置主机网络,以解决第三方库存在的goroutine卡住的问题。( #2363 , @lzhecheng ) [Windows]

  • 修复 Docker 作为Windows节点的runtime时HNS Endpoint 在Pod被删除时没有被清理的问题。( #2306 , @wenyingd ) [Windows]

  • 修复Windows节点上为Pod创建网络时访问HNS Network存在的race condition。(#2253,@tnqn)[Windows]

  • 修复了向 OVS 发送 PacketOut 消息时的校验和计算错误。(#2273,@Dyanngg)

  • 修复了 controlplane API 的内部和版本化类型之间的无效转换函数,这会导致JSON编码错误。(#2302,@tnqn)

  • 修复了旧版“controlplane.antrea.tanzu.vmware.com”API 的 v1beta1 版本的实现:API 错误地使用了一些 v1beta2 类型,并且缺少一些字段选择器。(#2305,@tnqn)

  • 验证创建HNSNetwork时自动发现的上行链路网卡不是虚拟网卡,并在验证失败时输出更友好的错误日志。(#2246,@tnqn)[Windows]

  • 为 NodePortLocal 分配主机端口时,首先确保该端口可用并通过监听该端口来保留它。(#2385,@antoninbas)

  • 将 NodePortLocal 的默认端口范围更改为 61000-62000,以避免与 Linux 上的默认ip_local_port_range 冲突。(#2382,@antoninbas)

  • 将NamespaceIndex 添加到 NodePortLocal Controller 的PodInformer以避免错误日志提示和慢查询。(#2377,@tnqn)

  • 当mutating webhook处理Antrea原生网络策略时,仅在“Patch”内容不为空时设置响应内容中的“PatchType”字段,否则响应会被认为无效。(#2295,@Dyanngg)

  • 修复 FlowAggregator 中的“egressNetworkPolicyRuleAction”IPFIX 信息元素。(#2228,@zyiou)

  • 修复Antrea Octant 插件中访问Traceflow 状态存在的race condition(在多个浏览器会话的情况下)。(#2261,@antoninbas)

  • 删除从 Antrea agent调用ovs-appctl时只存在单个ovs-vswitchd.ctl 文件的假设。(#2260,@antoninbas)

  • 修复antrea/antrea-ubuntu Docker镜像中whereabouts二进制文件权限问题。(#2353,@antoninbas)

 

Antrea v1.2.0 版本发布:支持 Egress 高可用

致谢

随着v1.2.0版本的发布,Antrea提供了更完备的Egress功能,更加友好便捷的用户体验。

社区的繁荣离不开贡献者的支持,感谢每一位社区贡献者!

  • https://github.com/abhiraut

  • https://github.com/antoninbas

  • https://github.com/Dhruv-J

  • https://github.com/dreamtalen

  • https://github.com/Dyanngg

  • https://github.com/hangyan

  • https://github.com/hongliangl

  • https://github.com/luolanzone

  • https://github.com/lzhecheng

  • https://github.com/monotosh-avi

  • https://github.com/ramay1

  • https://github.com/tnqn

  • https://github.com/wenyingd

  • https://github.com/wenqiq

  • https://github.com/zyiou

Antrea v1.2.0 版本发布:支持 Egress 高可用

关于 Antrea

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

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

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

官网:https://antrea.io


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

嗨翻C语言

嗨翻C语言

[美]David Griffiths、[美]Dawn Griffiths / 程亦超 / 人民邮电出版社 / 2013-9 / 99.00

你能从这本书中学到什么? 你有没有想过可以轻松学习C语言?《嗨翻C语言》将会带给你一次这样的全新学习 体验。本书贯以有趣的故事情节、生动形象的图片,以及不拘一格、丰富多样的练 习和测试,时刻激励、吸引、启发你在解决问题的同时获取新的知识。你将在快乐 的气氛中学习语言基础、指针和指针运算、动态存储器管理等核心主题,以及多线 程和网络编程这些高级主题。在掌握语言的基本知识......一起来看看 《嗨翻C语言》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具