前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Antrea v1.3.0版本发布:支持WireGuard传输加密和基于FQDN的网络策略

Antrea v1.3.0版本发布:支持WireGuard传输加密和基于FQDN的网络策略

作者头像
CNCF
发布2021-09-17 10:02:39
1.1K0
发布2021-09-17 10:02:39
举报
文章被收录于专栏:CNCFCNCF
引言

Antrea项目是一个基于Open vSwitch(OVS)的开源Kubernetes CNI网络解决方案,旨在为Kubernetes集群提供更高效、更安全的跨平台网络和安全策略。2021年4月,Antrea正式成为CNCF沙箱级项目(Sandbox Project)。

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

北京时间2021年09月03日,Antrea发布了新版本v1.3.0。主要包括对基于DNS/FQDN名称的网络安全策略的支持,和支持WireGuard加密跨主机Pod流量,以及其他更新和修改。

Antrea v1.3.0 Release文档:

https://github.com/antrea-io/antrea/releases/tag/v1.3.0

新增特性

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

  • Antrea原生网络策略增加对全限定域名(FQDNs)的支持。FQDN过滤规则可以使用通配符。(#2613 #2634 #2667 #2623 #2691, @Dyanngg @antoninbas @GraysonWu @madhukark @lzhecheng)
  • 对使用WireGuard加密跨主机Pod流量的支持。目前对此类流量加密可以选择IPsec或者WireGuard。如果需要启用WireGuard,流量封装模式必须指定为encap。同时隧道类型选项将被忽略。(#2297 #2697, @xliuxu @tnqn)
  • 增加可配置的网卡接口用于传输 Pod流量。(#2370, @wenyingd) 1.增加了一个配置项transportInterface用于指定哪个网卡将被Antrea Agent用于传输Pod流量。默认行为保持不变,即默认会使用包含Kubernetes节点IP的网卡。 2.在Windows节点中,SNAT现在将在主机端执行,不再由OVS执行。
  • 对双协议栈网卡(网卡同时配置了IPv4和IPv6地址)的支持,因此目前可以在双协议栈集群中启用noEncap流量封装模式。 (#2436, @lzhecheng)
  • 在ExternalIPPool CRD中增加状态字段,可以显示ExternalIPPool已用IP数量以及总的IP数量。(#2490, @wenqiq)
  • Egress新增对IPv6以及IPv4/IPv6双协议栈集群的支持。(#2196 #2655, @wenqiq)
  • antctl supportbundle命令增加了时间戳参数,可以对收集到的日志进行过滤。(#2389, @hangyan @weiqiangt)
  • 增加对IPv6以及IPv4/IPv6双协议栈Kind集群的支持。(#2415, @adobley @christianang @gwang550)
  • 在Flow Aggregator中增加对JSON格式日志的支持以便在使用Logstash时提供更好的性能,目前IPFIX仍为默认的日志格式。(#2559, @zyiou)
  • "antctl get networkpolicy"命令增加"--sort-by" 选项。(#2604, @antoninbas)

亮点一:Antrea原生网络策略增加对全限定域名(FQDNs)的支持。

Antrea原生网络策略配置于出口流量时可以指定域名作为筛选条件。域名可以支持通配符,支持的动作包括Allow, Drop 和 Reject。一个简单的例子如下:

代码语言:javascript
复制
apiVersion: crd.antrea.io/v1alpha1
kind: ClusterNetworkPolicy
metadata:
  name: acnp-fqdn-all-foobar
spec:
  priority: 1
  appliedTo:
  - podSelector:
      matchLabels:
        app: client
  egress:
  - action: Drop
    to:
      - fqdn: "*foobar.com"

上面的例子会丢弃所有标签中包含app: client的Pod发送到*foobar.com 域名的流量。

注意这个特性只工作在三层或四层,此外此项功能无法作用于Kubernetes为Service创建的DNS域名(例如 kubernetes.default.svc或者antrea.kube-system.svc,Headless Service不受此限制影响)。

亮点二:支持使用WireGuard加密跨主机Pod流量。

WireGuard可以用于加密跨主机的Pod间流量,在特定场景下WireGuard相较于IPsec提供更好的吞吐量。

要启用此功能只需要修改Antrea的Configmap将 trafficEncryptionMode 指定为WireGuard,此时跨主机流量将被WireGuard加密封装,Antrea的流量封装模式(trafficEncapMode)必须指定为encap。此外,隧道类型的选项将被忽略。

其他修改

  • 移除ClusterGroup必须存在才可以作为其他ClusterGroup的子组的限制。(#2443, @Dyanngg)
  • 移除ClusterGroup必须存在才可以被Antrea ClusterNetworkPolicy引用的限制。(#2478, @Dyanngg @abhiraut)
  • 依据API弃用规则移除了"controlplane.antrea.tanzu.vmware.com/v1beta1" API。(#2528 #2631, @luolanzone)
  • Controller对ClusterGroup成员的查询接口("/clustergroupmembers" API)的返回中将包含IPBlocks列表。(#2577, @Dyanngg @abhiraut)
  • 对所有属于同一个Service的Endpoint安装一条Openflow bundle以减少Agent启动时安装流规则的时间。(#2476, @tnqn)
  • 优化Agent启动时NetworkPolicy规则的批量安装,仅依据最终的状态生成流规则而非增量安装。(#2479, @tnqn @Dyanngg)
  • 用GroupMemberSet.Merge代替GroupMemberSet.Union以降低Agent中policy controller的CPU和内存占用。(#2467, @tnqn)
  • 优化iptables规则查询,避免枚举所有规则链以减少Agent的内存消耗。(#2458, @tnqn)
  • 考虑在特定场景下Agent会在较长时间内无法连接到Controller,优化Agent的就绪探针,可以容忍更多次的失败。(#2535, @tnqn)
  • 去掉了在启用IPsec加密时只能选择GRE隧道的限制,目前VXLAN和GENEVE都可以被支持(需要较新Kernel支持)。 (#2489, @luolanzone)
  • 对NetworkPolicy审计日志中的拒绝连接日志进行自动去重,在1秒种之内的所有被拒绝的连接将被合并成一条日志,该日志将包含拒绝连接的次数。(#2294 #2578, @qiyueyao)
  • 当部分节点无响应时支持返回部分supportbundle的结果。(#2399, @hangyan)
  • 当NetworkPolicyStats Feature Gate未被开启时如果从Controller API中获取NetworkPolicyStats时将返回空的列表而非错误。(#2386, @PeterEltgroth)
  • 将OVS从2.14.2更新到2.15.1 ,新版本修复了userspace datapath中对Geneve隧道的支持,此功能用于Kind集群。(#2515, @antoninbas)
  • 更新go-ipfix到v0.5.7,以对FlowExporter功能特别是Flow Aggregator模块提供更好的性能支持。(#2574, @srikartati @zyiou)
  • 对AntreaAgentInfo和AntreaControllerInfo CRD添加格式化输出。(#2572, @antoninbas)
  • 优化了Egress状态更新,当Egress IP为用户手动配置时,系统匹配到IP对应的节点将自动更新Egress状态为对应节点名称。(#2444, @wenqiq)
  • 将ClusterGroup CRD的单数名称由"group"更新为"clustergroup"。(#2484, @abhiraut)
  • 将官方支持的Go版本由1.15更新为1.17,此更新中需要注意的是"net" 包中"ParseIP" 和 "ParseCIDR"的实现的变化。Antrea用户不受影响。[参考https://github.com/antrea-io/antrea/issues/2606#issuecomment-901502141] (#2609 #2640, @antoninbas)
  • 将保留OVS寄存器范围和定义常量的过程标准化,OVS寄存器将被用于存储单个数据包的信息以用来实现特定的功能。(#2455, @wenyingd)
  • 更新ELK相关参考配置以支持TCP传输。(#2387, @zyiou)
  • 更新Windows安装指引。(#2456, @lzheheng)
  • 更新Antrea原生规则相关文档以同步Kubernetes上游对"kubernetes.io/metadata.name"标签的支持。(#2596, @abhiraut)
  • 在Vagrant配置的测试集群中使用containerd作为容器运行时。 (#2583, @stanleywbwong)
  • 更新了Antrea 原生规则文档中AllowToCoreDNS的例子。(#2605, @btrieger)
  • 将Github工作流中的"actions/setup-go"更新至v2版本。(#2517, @MysteryBlokHed)

问题修复

  • 修复了计算NetworkPolicy中新增规则的统计数据时的空指针异常。(#2495, @tnqn)
  • 修复了在双协议栈集群中安装iptables规则时,如果其中只有一个协议栈的规则已被安装,则安装过程可能被跳过的错误。(#2469, @lzhecheng)
  • 修复了Agent由FlowExporter中的导出协程和conntrack池协程导致的死锁问题。(#2429, @srikartati)
  • 将Windows节点的OVS版本更新到2.14.2-antrea.1,此版本基于上游2.14.2正式版并修复了使用DNAT时计算TCP校验和的问题。(#2549, @lzhecheng)
  • 修复了在NodePortLocal初始化时,恢复iptables规则时暂时性的错误(由xtables锁竞争引起)。(#2555, @antoninbas)
  • 在Agent启动时检查OVS datapath所支持的特性列表,如果缺失Antrea必须的特性则Agent会输出错误日志并退出,而非继续尝试运行。(#2571, @tnqn)
  • 在Linux节点在运行ovs-apptcl命令之前等待ovs-vswitchd的PID文件变为就绪。(#2695, @tnqn)
  • 在Flow Exporter中周期性删除无法被导出的过期连接,以避免内存溢出错误。(#2516, @srikartati)
  • 修复了由Antrea Agent流表中产生的拒绝数据包可能在两个被network policies拒绝的端点中无限循环的问题。(#2579, @GraysonWu)
  • 修复了Linux内核版本号解析的问题以适应更多的发行版,如RHEL / CentOS。(#2450, @Jexf)
  • 修复了IPsec隧道设备命名时,由于节点名称中可能包含“-”,当用于设备名的首字符时不合法的问题。(#2486, @luolanzone)
  • 当创建到远端节点的IPsec OVS隧道端口时,优雅处理端口已经存在但是配置已经过期的问题。(#2582, @luolanzone)
  • 修复了当Baseline层Antrea原生网络策略应用于流时Flow Exporter报告的策略信息。(#2542, @zyiou)
  • 周期性清除Flow Aggregator产生的日志文件,此前"--log_file_max_size" 和 "--log_file_max_num"被错误地忽略。(#2522, @srikartati)
  • 修复了当FlowAggregator发送第一条流日志时缺失的模版ID。(#2546, @zyiou)
  • 确保从环境变量或者主机名读取的Windows节点名称被转换为小写。(#2672, @shettyg)
  • 修复了Windows中Antrea清理网络的脚本,移除了Hyper-V对用于OVS uplink网卡的绑定以使之可以正确恢复其IP地址。(#2550, @wenyingd)
  • 修复了Logstash的参考配置以避免在计算吞吐量时0作为除数的问题(#2432, @zyiou)
  • 修复了在收集support bundle时,由于antrea-agent镜像没有包含iproute2时可能产生的空指针异常问题。此问题不涉及antrea-ubuntu镜像。(#2598, @liu4480)

致谢

随着v1.3.0版本的发布,Antrea提供了NetworkPolicy全限定域名(FQDNs)的功能支持,同时支持WireGuard加密跨主机Pod流量,对集群网络安全性和性能将有很大提升。

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

  • https://github.com/abhiraut
  • https://github.com/adobley
  • https://github.com/antoninbas
  • https://github.com/btrieger
  • https://github.com/christianang
  • https://github.com/Dyanngg
  • https://github.com/GraysonWu
  • https://github.com/gwang550
  • https://github.com/hangyan
  • https://github.com/hongliangl
  • https://github.com/Jexf
  • https://github.com/luolanzone
  • https://github.com/lzhecheng
  • https://github.com/liu4480
  • https://github.com/madhukark
  • https://github.com/MysteryBlokHed
  • https://github.com/PeterEltgroth
  • https://github.com/qiyueyao
  • https://github.com/shettyg
  • https://github.com/srikartati
  • https://github.com/stanleywbwong
  • https://github.com/tnqn
  • https://github.com/weiqiangt
  • https://github.com/wenyingd
  • https://github.com/wenqiq
  • https://github.com/xliuxu
  • https://github.com/zyiou

Antrea中文社区

欢迎加入Antrea中文社区。

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

💻 官网:https://antrea.io

👨‍💻 微信群:请搜索添加“Antrea”微信官方公众号进群

参考链接

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

https://github.com/antrea-io/antrea/releases/tag/v1.3.0

文章转载自云原生网络Antrea。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CNCF 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档