在容器云为基础的现代系统架构中,eBPF技术尤其具有重要意义。同时也已经出现了Cilium(CNCF云原生项目,用于解决大集群规模下iptables性能问题)、Pixie等优秀的开源项目。
今天我们介绍一个同类的项目Retina(视网膜),这是由微软开源。使用Golang语言开发的K8S网络测控系统
概述Retina是一个与云无关的开源K8S网络可观察性平台,可以用来解决容器云平台中DevSecOps下网络流量的安全管控和合规性等问题。Retina提供了一个用于监控应用程序和网络健康与安全的集中中心,满足集群网络管理员、集群安全管理员和DevOps工程师的需求。
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使用两种类型的遥测:指标和捕获。
指标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网络测控系统,可以用于在容器云复杂网络平台下高效、自动的捕获、存储和可视化网络流量等信息。对于复杂平台下排障、安全监控和数据合规管理等都有积极的意义,值得我们大家尝鲜试用。
相关教程
2024-11-17
2024-11-17
2024-11-16
2024-11-15
2024-11-14
2024-11-13
copyright © 2012-2024 win10系统家园 qdhuajin.com 版权声明