漫步远方,心荡神往

使用 Hubble 实现 Kubernetes 服务可观测性(3)

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

Hubble - 使用 eBPF 的 Kubernetes 的网络、服务和安全可观测性。Hubble 则是 Cilium 的一个子项目,专注于提供网络可观察性。Hubble 可以收集和可视化 Cilium 网络的流量信息,帮助用户理解网络流量的模式,检测网络问题,理解应用的行为。Hubble 提供了一个丰富的可视化界面,可以显示网络流量的详细信息,包括源 IP、目标 IP、端口号、协议类型、数据包数量、字节数量等。

深入研究 Kubernetes 集群中的 Service 通信机制

Kubernetes 中的服务是一种简单的抽象,但与任何抽象层类似,它增加了系统的复杂性,并使故障排除变得更具挑战性。本文我们来研究下在 Kubernetes 集群中,Service 之间是如何通信的。

在我们的学习过程中,首先我们探讨了在 Docker Swarm 集群模式下,服务之间是如何进行通信的。我们了解到,Docker Swarm 使用内置的服务发现和负载均衡机制来实现服务间的通信。然后,我们转向 Kubernetes,研究了在 kube-proxy、Istio Service Mesh 和 Cilium 三种模式下服务到服务的通信机制。在 kube-proxy 模式下,我们了解到它使用 Iptables 或者 IPVS 来实现服务的负载均衡。而在 Istio Service Mesh 模式下,服务间的通信是通过 Envoy 代理来实现的,它提供了丰富的流量控制和安全策略。最后,在 Cilium 模式下,我们学习了它是如何利用 BPF(Berkeley Packet Filter)来实现服务通信的。这三种模式各有特点,为我们提供了丰富的选择来满足不同的服务通信需求。

浅析 Cilium 与 iptables

浅析 Cilium 为什么仍然使用 iptables。

似乎大家都不太喜欢 iptables,Cilium 好像也是一样的。使用了 Cilium 一段时间,对于 Cilium 使用 eBPF 构建高性能、可扩展的容器网络印象深刻,并且还具备 L7 策略和可观测性能力。如果你之前还没有听说过 Cilium,可以去了解与试用一下!

Cilium Mesh 常见场景与示例

Cilium Mesh 流量治理功能,如限流、熔断、负载均衡、灰度、Admin等

从早期开始,Cilium 就通过网络和应用程序协议层来提供连接、负载平衡、安全性和可观察性,从而与服务网格概念保持良好一致。对于所有网络处理,包括 IP、TCP 和 UDP 等协议,Cilium 使用 eBPF 作为高效的内核数据路径。HTTP、Kafka、gRPC、DNS 等应用层协议通过 Envoy 等代理进行解析。

深入理解 Cilium 核心原理

通过 Pod 请求生命周期理解 Cilium 数据路径

Cilium 是一个用于容器和微服务网络安全的开源软件项目。它提供了一种基于 Linux 内核的数据平面和一个高级的控制平面,用于实现网络和安全策略的管理。Cilium 的设计理念是通过深度集成到容器和 Kubernetes 中,提供全面的安全和网络功能,同时保持高性能和可扩展性。它使用 Linux 内核的 eBPF (extended Berkeley Packet Filter) 技术来实现高效的数据平面,并使用 Kubernetes API 来管理网络和安全策略。Cilium 还支持多种网络和安全功能,例如应用层负载均衡、服务发现、网络加密和网络策略等。