Cilium v1.16.0 新特性介绍

查看本文大纲

Cilium v1.16.0 发布于 2024 年 7 月 25 日,带来了许多令人兴奋的新功能和改进,以下是主要更新内容:

网络

  • Cilium NetKit: 容器网络的吞吐量和延迟达到与主机网络同等的水平。
  • BGPv2: 全新 API 用于 Cilium 的 BGP 功能。
  • BGP ClusterIP Advertisement: 对 ExternalIP 和 Cluster IP 服务的 BGP Advertisement 支持。
  • 服务流量分布: Kubernetes 1.30 中的服务流量分布可以直接在服务规范中启用,而无需使用注释。
  • 本地重定向策略稳定: 将指向服务的流量重定向到本地后端,例如节点本地 DNS。
  • 多播数据路径: 在 Cilium 中定义多播组。
  • 每 Pod 固定 MAC 地址: 可以指定 Pod 使用的 MAC 地址。

服务网格与入口/网关 API

  • Gateway API GAMMA 支持: 通过 Gateway API 进行集群内部东西向流量管理。
  • 支持 Gateway API 1.1: Cilium 现在支持 Gateway API 1.1。
  • Ingress/Gateway API 的 ExternalTrafficPolicy 支持: 外部流量现在可以路由到节点本地或集群范围的端点。
  • L7 Envoy 代理作为专用 DaemonSet: 通过专用 DaemonSet,Envoy 和 Cilium 可以独立生命周期。新安装默认启用。
  • CiliumEnvoyConfig 的 NodeSelector 支持: 现在可以选择特定节点应用 CiliumEnvoyConfig,而不是应用到所有节点。

安全

  • 网络策略端口范围支持: 期待已久的功能现已在 Cilium 中实现。
  • 网络策略验证状态: kubectl describe cnp 可以告诉 Cilium 网络策略是否有效。
  • 控制 Cilium 网络策略默认拒绝行为: 策略通常启用默认拒绝,但现在可以在每个策略基础上禁用此行为。
  • Egress 和 Deny 规则的 CIDRGroups 支持: 支持在 Egress 策略规则中匹配 CiliumCIDRGroups。
  • 从文件系统加载“默认”网络策略: 除了从 Kubernetes 读取策略外,Cilium 还可以配置为本地读取策略。
  • 选择节点作为 Cilium 网络策略的目标: 通过新的 ToNodes/FromNodes 选择器,可以根据目标节点的标签允许或拒绝流量。

Day 2 操作与规模

  • 新的 ELF 加载逻辑: 新的加载逻辑使 Cilium 的中位内存使用量减少了 24%。
  • 改进的基于 DNS 的网络策略性能: 基于 DNS 的网络策略尾部延迟减少了 5 倍。
  • KVStoreMesh 作为 ClusterMesh 的默认选项: 自 Cilium 1.14 引入以来,经过社区大量采用和反馈,KVStoreMesh 现在是部署 ClusterMesh 的默认方式。

Hubble 与可观测性

  • CEL 过滤器支持: Hubble 支持通用表达式语言(CEL),支持更复杂的条件,无法用现有的流过滤器表达。
  • 改进的 HTTP 指标: 增加了统计 HTTP 请求及其持续时间的指标。
  • 改进的 BPF 映射压力指标: 新指标用于跟踪连接跟踪 BPF 映射的 BPF 映射压力指标。
  • 改进的 Egress 流量路径可观测性: 本次发布中增加了一些指标,以帮助排查 Cilium Egress 路由。
  • 数据包丢弃的 K8S 事件生成: Hubble 现在可以为从 pod 丢弃的数据包生成 k8s 事件,可以使用 kubectl get events 验证。
  • 按节点标签过滤 Hubble 流量: 按照匹配给定标签的节点过滤 Hubble 流量。

Cilium v1.16.0 的这些新特性和改进,使其在性能、可管理性和安全性方面都得到了显著提升。如果你对这些新功能感兴趣,建议尽快升级并体验这些改进。详细的发布记录请见 GitHub

最后更新于 2024/12/12