如何监控容器间的流量?

2021-01-18 10:24:57 浏览数 (3)

文章目录
  • 简介
  • 为什么要使用容器?
  • nProbe agent的特征
  • nProbe agent用例
  • 关注我们

简介

由于容器具有简化部署、多环境支持、快速启动、服务编排、易于迁移等特点,目前已经被广泛使用。作为下一代虚拟化技术,正在改变我们开发、测试、部署应用的方式。容器的使用给我们的带来了诸多便利,但是同时也带来一个问题,如何监控容器间的流量?同一主机上容器间的通信是很常见的,但他们之间通信的流量不会到物理链路,所以很难监控。nProbe agent 是一个自省探针,能够提供进程、用户、容器的可见性。

为什么要使用容器?

在没有使用容器之前,我们把大部分的业务应用跑在虚拟机(或云主机)上面,遇到了两个问题,一个问题是虚拟化Hypervisor管理软件本身的资源消耗与磁盘IO性能降低,另一个是虚拟机仍然还是一个独立的操作系统,导致我们在处理虚拟机的扩缩容与配置管理工作时效率低下。所以,我们后来发现了容器的好处,所有业务应用可以直接运行在物理主机的操作系统之上,可以直接读写磁盘,应用之间通过计算、存储和网络资源的命名空间进行隔离,为每个应用形成一个逻辑上独立的“容器操作系统”。 什么是nProbe agent?

nProbe™代理(以前称为nProbe mini)是一个轻量级探测器,它实现了基于事件的低开销监视,主要基于libebpfflow(基于eBPF)和Netlink等技术。

此小型代理通过系统自检增强网络可见性,同时使用最少的CPU和内存。它使用系统自省的进程、用户、容器、协调器和其他性能指标来丰富传统网络数据,如IP地址、字节和数据包。这使nProbe™Agent非常有效地回答了通常仍未解决的一系列新问题,其中:

  • 向恶意软件主机生成流量的过程是什么?谁是此过程的所有者?
  • 我的容器彼此通信时经历的通信延迟是多少?

nProbe agent的特征

nProbe™ Agent能够提取的信息包括:

  1. 所有TCP和UDP网络通信(对等,端口,状态)
  2. TCP计数器,包括重传,乱序和往返时间
  3. 通信背后的用户,进程和可执行文件
  4. 容器ID和名称,协调器POD和命名空间

nProbe agent用例

  1. 跟踪网络活动背后的用户和进程

想知道尝试从恶意软件主机下载文件的用户是谁吗?他/她正在运行哪个进程?nProbe agent为您提供答案,跟踪与主机上运行的客户端或服务的所有通信,并使用套接字提取所有详细信息,包括用户和进程。

  1. 对容器间网络通信具有可见

在同一主机上部署多个相互通信的容器是很常见的。在这种情况下,他们的通信流量永远不会到达线缆,因为它始终停留在主机上。因此,使用镜像端口或TAP监视其流量的任何尝试都将失败。幸运的是,nProbe agent还可以在主机上进行网络活动时检测,计数和衡量网络活动。 以下是nProbe™Agent发现的网络通信,该通信在进程之间进行/sidecar在容器内运行/sidecarKubernetes POD的一部分kube-dns-6bfbdd666c-jjt75,和进程/usr/bin/dnsmasq在容器内运行dnsmasq同一Kubernetes POD的一部分。

  1. 每个POD的网络活动和性能指标

使用nProbe™Agent,您可以使用例如测量的通信往返时间来发现容器和POD的活动和性能。

0 人点赞