Container insight

EKS 的 Container Insights 是一项强大功能,它收集、聚合和汇总指标与日志,提供 EKS 集群运行状态的全面视图。Container Insights 是一项完全托管的监控和可观测性服务,为 DevOps 工程师、开发人员、SRE 和 IT 管理人员提供开箱即用的容器化应用程序和微服务环境可见性。通过 Amazon CloudWatch Container Insights,我们可以以最少的努力监控、隔离和诊断 Kubernetes 集群中的问题。它以指标和日志的形式提供集群、服务和 Pod 的基础设施遥测数据,如 CPU、内存、网络和磁盘使用情况,这些数据可以在 CloudWatch 控制台中轻松可视化。

设置 Container Insights

前置条件:

  • 安装Pod identity agent add-on:

image-20250427150718849

进入eks的Observability页面,点击Install CloudWatch Obserability add-on:

image-20250427141617182

它其实跳转到了eks安装add-on的页面,选择CloudWatch Obserability。 这个插件会安装 CloudWatch Agent和 Fluent Bit,为我们提供基础设施和容器日志洞察。CloudWatch Agent将集群节点的关键基础设施指标发送到 CloudWatch。这使我们能够监控 CPU、网络、磁盘和其他低级节点指标。Fluent Bit 将集群中的容器日志发送到 CloudWatch Logs。这使我们能够洞察容器中的应用程序和系统日志:

image-20250427141649109

在权限配置,使用EKS Pod Identity方式,如果没有创建,先点击Create recommend role:

image-20250427141716312

这个过程一直点击下一步就行,会自动命名并选择对应policy:

image-20250427141753855

创建role完成后,回到之前的页面,选择使用刚创建的role,然后点击创建add-on:

image-20250427141816150

创建完成后,等待状态变成Active

image-20250427150058824

回到Observality页面,点击跳转到cloudwatch container insight页面:

image-20250427150126576

验证 Container Insights 安装

安装完成后,请验证 CloudWatch 代理和 Fluent Bit 是否正在运行:

# 检查 pods 状态
kubectl get pods -n amazon-cloudwatch

image-20250427150505157

查看 CloudWatch页面

Container Insight里包括以下页面:

  • 性能监控 - 显示 CPU、内存、磁盘和网络使用情况
  • 容器映射 - 提供集群资源的可视化映射
  • 按资源类型查看 - 按节点、Pod、服务等分类查看指标
  • 日志 - 查看集群、应用程序和性能日志

image-20250427151241558