当前位置: win10系统家园 >  微软资讯 >  Retina——微软开源的eBPF K8S网络测控工具,实现高效网络监控管理

Retina——微软开源的eBPF K8S网络测控工具,实现高效网络监控管理

更新时间:2024-03-22 08:55:33作者:qdhuajin
随着eBPF技术的发展,基于该技术的网络测控工具越来越多,也越来越成熟。作为下一代网络测控技术,eBPF直接内嵌Linux内核,具有高性能、高扩展、安全性等优势,在网络、安全、可观察方面均堪大用。

在容器云为基础的现代系统架构中,eBPF技术尤其具有重要意义。同时也已经出现了Cilium(CNCF云原生项目,用于解决大集群规模下iptables性能问题)、Pixie等优秀的开源项目。

Retina——微软开源的eBPF K8S网络测控工具,实现高效网络监控管理

今天我们介绍一个同类的项目Retina(视网膜),这是由微软开源。使用Golang语言开发的K8S网络测控系统

概述

Retina是一个与云无关的开源K8S网络可观察性平台,可以用来解决容器云平台中DevSecOps下网络流量的安全管控和合规性等问题。Retina提供了一个用于监控应用程序和网络健康与安全的集中中心,满足集群网络管理员、集群安全管理员和DevOps工程师的需求。

Retina——微软开源的eBPF K8S网络测控工具,实现高效网络监控管理

Retina收集可自定义的遥测数据,并且支持将其存储到无服务器架构中自建Prometheus中心。以及公有云存储中(例如Azure Monitor和其他SaaS产品),并以Grafana等多种界面展示和可视化,比如Azure Log Analytics和其他SaaS产品)。

特征

网络流量洞察;

基于先进的eBPF技术;

按需且可配置,支持自定义指标和流日志;

支持分布式数据包捕获;

云原生支持,可以适用于任何CNI和任何K8S平台。

支持多种操作系统(如 Linux、Windows、Azure Linux)。

典型用例

Retina可以实时高效的测控和捕获平台网络情况,可以最大限度地减少网络相关故障排查痛点和调查时间,典型的应用场景有:

调试网络连接

为什么Pod无法相互连接?传统的排查方法耗时耗力,涉及执行数据包捕获,其中必须识别所涉及的节点,获得对每个节点的访问权限,运行tcpdump命令,并导出每个节点的结果,然后人为分析。

借助Retina,可以用单个CLI命令或CRD/YAM自动执行该过程,实现:

捕获集群中特定Pod的所有节点上网络流量。

将每个节点的结果上传到存储blob。

监控网健康状况

Retina通过Prometheus告警、Grafana仪表板等,可实现:

监视命名空间中丢弃的流量。

针对生产DNS错误激增发出警报。

在测试应用程序的规模时观察API服务器延迟的变化。

针对Pod发送超阈值(低于)的流量,给值守团队发出告警。

基本架构Retina——微软开源的eBPF K8S网络测控工具,实现高效网络监控管理

Retina使用两种类型的遥测:指标和捕获。

指标

Retina提供了丰富的持续可观察性指标:

上行/下行网络流量;

丢包;

TCP/UDP;

域名系统;

API服务器延迟;

节点/接口统计;

同时提供还支持对这些指标:

基本指标(默认,节点级指标)求和。

高级/Pod级指标 (详见文档)。

捕获

Retina捕获记录指定Nodes/Pod的网络流量和元数据。捕获是按需的,并且可以输出到多个目的地。

安装配置安装

tarball 采用这样的名称模式,$(capturename)-$(hostname)-$(date +%Y%m%d%H%M%S%Z).tar.gz,例如, retina-capture-aks-nodepool1-41844487-vmss000000-20230313101436UTC.tar.gz。

总结

本文介绍了一个基于下一代网络测控技术eBPF的K8S网络测控系统,可以用于在容器云复杂网络平台下高效、自动的捕获、存储和可视化网络流量等信息。对于复杂平台下排障、安全监控和数据合规管理等都有积极的意义,值得我们大家尝鲜试用。

相关教程

copyright ©  2012-2024 win10系统家园 qdhuajin.com 版权声明