Cilium & Hubble

Cilium – 网络实现方案

部署架构

在这里插入图片描述

概述

Cilium网络概述

Cilium 是一个用于容器网络领域的开源项目,主要是面向容器而使用,用于提供并透明地保护应用程序工作负载(如应用程序容器或进程)之间的网络连接和负载均衡。

Cilium 在第 3/4 层运行,以提供传统的网络和安全服务,还在第 7 层运行,以保护现代应用协议(如 HTTP, gRPC 和 Kafka)的使用。 Cilium 被集成到常见的容器编排框架中,如 Kubernetes 和 Mesos。

Cilium 的底层基础是 BPF,Cilium 的工作模式是生成内核级别的 BPF 程序与容器直接交互。区别于为容器创建 overlay 网络,Cilium 允许每个容器分配一个 IPv6 地址(或者 IPv4 地址),使用容器标签而不是网络路由规则去完成容器间的网络隔离。它还包含创建并实施 Cilium 规则的编排系统的整合。

官网介绍

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

组件介绍

ks get svc,pod -owide|grep -i cilium

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

网络性能

CNI 基准:了解 Cilium 网络性能
在这里插入图片描述
为什么内核社区要用 BPF 取代 iptables?

bpfilter,它将用 Linux BPF 支持的高性能网络过滤取代长期存在的 iptables 内核实现,同时保证 Linux 用户的无中断过渡。

在这里插入图片描述
上图中突出的是,节点到节点网络所需的整个网络处理路径也是针对容器网络情况完成的,就在容器的网络命名空间内部(深蓝色框)。

鉴于节点网络处理所需的所有工作也需要在容器网络命名空间内进行,因此在容器网络命名空间之外完成的任何工作基本上都是开销。上图显示了使用带有虚拟以太网 (veth) 设备的 Linux 路由时的网络路径。例如,如果您使用 Linux 桥接器或 OVS,它可能看起来略有不同,但基本的开销点是它们之间共享的。

在这里插入图片描述

您可能想知道之前基准测试中的配置“Cilium eBPF”和“Cilium eBPF(传统主机路由)”之间的差异,以及为什么本机 Cilium eBPF 数据路径比传统主机路由快得多。当引用 Cilium eBPF 本机数据路径时,正在使用称为 eBPF 主机路由的优化数据路径:

eBPF 主机路由允许绕过主机命名空间中的所有 iptables 和上层堆栈开销,以及遍历虚拟以太网对时的一些上下文切换开销。网络数据包会尽早从面向网络的网络设备中获取,并直接传递到 Kubernetes Pod 的网络命名空间中。在出口端,数据包仍然穿过 veth 对,由 eBPF 拾取并直接传送到面向外部的网络接口。路由表直接从 eBPF 进行查询,因此这种优化是完全透明的,并且与系统上运行的提供路由分发的任何其他服务兼容。有关如何启用此功能的信息,请参阅 调优指南中的eBPF 主机路由。

Calico eBPF 对 iptables 应用了一些相同的绕过方法,但正如我们稍后将了解到的,它们并不完全相同。然而,它证明,绕过慢速内核子系统(例如 iptables)可以产生最大的影响。

扩展:Cilium-IPAM-Hook

在这里插入图片描述

Cilium-IPAM-Hook是Cilium项目的一个组件,用于在Kubernetes集群中管理和分配IP地址和网络配置。Cilium是一个用于容器网络和安全的开源项目,它提供了基于eBPF(extended Berkeley Packet Filter)的数据平面,用于实现高性能的网络转发和安全功能。

Cilium-IPAM-Hook的主要作用是与Kubernetes的IP地址管理(IPAM)机制集成,实现IP地址的动态分配和配置。它负责监听Kubernetes的网络事件(如Pod创建、删除、网络配置变更等),并根据需要分配和回收IP地址。

具体而言,Cilium-IPAM-Hook具有以下功能:

  1. IP地址分配:在Pod创建时,Cilium-IPAM-Hook根据集群中配置的IP地址池规则,为新创建的Pod分配一个可用的IP地址。这确保每个Pod都有一个唯一的IP地址,以便进行网络通信。

  2. IP地址回收:在Pod删除时,Cilium-IPAM-Hook会释放该Pod所使用的IP地址,以便将其返回到可用的IP地址池中,以供后续的Pod使用。

  3. 网络配置更新:当Kubernetes集群中的网络配置发生变化(如网络策略更新、网络拓扑变更等),Cilium-IPAM-Hook会相应地更新相关的IP地址分配和配置。

  4. 与其他Cilium组件的协调:Cilium-IPAM-Hook与Cilium的其他组件(如Cilium-Agent)紧密协作,确保IP地址的分配和配置与网络转发、安全策略等功能的一致性。

通过使用Cilium-IPAM-Hook,Cilium可以为Kubernetes集群提供高效、灵活和可编程的容器网络解决方案,自动化IP地址的管理和配置,简化了网络操作和维护的复杂性。

集群范围(默认)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
245.0.1.0/24 可用地址是254个,如果超过了254个Pod 地址咋分配呢

在这里插入图片描述

Hubble – 网络可视化

Hubble是建立在Cilium和eBPF之上,以一种完全透明的方式,提供网络基础设施通信以及应用行为的深度可视化,是一个应用于云原生工作负载,完全分布式的网络和安全可观察性平台。

Hubble能够利用Cilium提供的eBPF数据路径,获得对Kubernetes应用和服务网络流量的深度可见性。这些网络流量信息可以对接Hubble CLI、UI工具,可以通过交互式的方式快速发现诊断相关的网络问题与安全问题。Hubble除了自身的监控工具,还可以对接像Prometheus、Grafana等主流的云原生监控体系,实现可扩展的监控策略。
在这里插入图片描述

ks get svc,pod -owide|grep -i hubble

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值