漫步远方,心荡神往

使用 Pixie 实现 Kubernetes 服务可观测性(4)

Pixie 是一个开源的观测和调试平台,旨在实时捕获、查询和可视化云原生应用程序的数据。它提供了一种轻量级的方式来收集和分析 Kubernetes 集群中的数据,以便进行实时观察、调试和监控。

Pixie 是一个用于 Kubernetes 应用程序的开源可观察性平台。Pixie 使用 eBPF 自动捕获遥测数据,可以使用 Pixie 查看集群的状态(服务映射、集群资源、应用程序流量),还可以深入查看更详细的视图(pod 状态、火焰图、应用程序单个请求生命周期)。Pixie 由 New Relic 公司于 2021 年 6 月捐赠给 [CNCF](https://www.cncf.io/) 作为孵化项目。

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

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

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

使用 coroot 实现 Kubernetes 服务可观测性(2)

coroot 是针对微服务架构的可观测性和故障分析工具,它基于 eBPF 来可视化展示服务之间的拓扑关系,并对七层与四层的可观测性进行了强化,可以帮助你快速定位七层与四层的故障。

本篇文章主要介绍 Coroot 架构、核心功能、示例、核心源码、示例等。

深入研究 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)来实现服务通信的。这三种模式各有特点,为我们提供了丰富的选择来满足不同的服务通信需求。

初识 Istio Ambient Mesh 新模式

初步了解 Istio 新数据平面 Ambient,目前 Ambient 尚处于 Alpha 阶段,Sidecar 模式依然是首选,但我相信 Ambient 模式是未来很好的选择。

Ambient Mesh,这是 Istio 提供的一种新的数据平面模式,旨在简化操作,提供更广泛的应用兼容性,并降低基础设施的成本。Ambient mesh 使得用户可以选择使用一种可以集成到其基础设施中的 Mesh 数据平面,而不是需要和应用一起部署的 sidecar。同时,该模式可以提供和 Sidecar 模式相同的零信任安全、遥测和流量管理等 Istio 的核心功能。目前 Ambient mesh 处于 alpha 阶段。