推广 热搜: 行业  机械  设备    系统  教师  经纪  参数    蒸汽 

试用 Coroot,一个基于 eBPF 的可观测性工具,用于 Kubernetes 等_coroot 组件

   日期:2024-12-02     移动:http://dh99988.xhstdz.com/mobile/quote/82905.html
试用 Coroot,一个基于 eBPF 的可观测性工具,用于 Kubernetes 等_coroot 组件 试用

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

正文

Coroot 有三个版本免费(开源)、云(按节点定价)和企业(可以是或本地安装)。Cloud 和 Enterprise 都包含作者的支持;后者还拥有附加功能,例如 RBAC(基于角色的访问控制)、SSO(单点登录)、审核日志等。

我们将在 Kubernetes 1.23 集群中安装和评估 Coroot 的开源版本。

安装方法 #1

为此,我们从官方存储库中的 Kubernetes 清单开始。清单创建了 Namespace、PersistentVolumeClaim、Deployment 和 Service。

但是,我们想看看该服务是如何从外部工作的,没有 PortForward 或其他技巧。因此,我们添加了一个 Ingress 资源。在 NGINX 中,使用可用于进入应用程序的外部 DNS 地址创建了一个配置文件。由于 Coroot 没有授权,我们通过 GitLab 使用 Dex 授权来保护资源。

*在容错配置中运行 Coroot:*该服务有一个名为 PG_CONNECTION_STRING 的变量。设置它会导致服务将其配置保存在 PostgreSQL 中。在这种情况下,可以在容错配置中运行它(但本主题超出了本文的范围)。

安装方法 #2

您可以使用原始的 Helm 图表安装 Coroot。

该图表安装了所有必要的导出器以及 Coroot、Pyroscope 代码分析系统和 ClickHouse 来存储其数据。

配置 Coroot

安装后,我们可以转到该工具的 Web 界面,并通过指定其名称、Prometheus 地址和凭据来创建一个新项目。

在 Coroot 中创建新项目, Prometheus 集成设置

注意:由于我们的集群由 Deckhouse 管理,因此与 Prometheus 的通信是在 RBAC 授权下进行的,这增加了集群的安全性。因此,我们不得不以 NGINX 代理容器的形式实现一个小 hack,该容器通过 RBAC 获取访问 Prometheus 的令牌。Coroot 无法通过 RBAC 向 Prometheus 进行开箱即用的身份验证,因为它仅提供基本授权。

如果使用常规 YAML 清单安装了 Coroot,则可能需要安装 coroot-node-agent。为了让 Coroot 工作并在从每个节点收集指标时为您提供可观测性见解,此代理是必不可少的。

下一步是将 node-agent DeamonSet 添加到部署中,从 Pod 配置指标收集,并将它们提供给 Prometheus。一旦我们的 Kubernetes 设置完成,许多令人兴奋的功能就会出现在 Coroot 界面中。

Coroot 功能

Pod 信息

让我们首先查看一下 Pod 之间的网络

注意:虽然我们不得不模糊名称以避免泄露基础设施细节,但如果需要,可以在 Coroot 网站上找到一个很好的视觉演示。

开发和运营团队可能会发现此功能相当方便。即使没有参与该项目的人也可以通过查看此图轻松了解所有服务的交互方式。以红色突出显示的应用程序是 Coroot 认为行为异常的应用程序(例如,响应时间过长)。这个简洁功能的缺点是,您无法移动块以使布局更具可读性。

下一步是什么?您可以选择一个容器以更详细地查看有关它的信息

它具有 CPU 使用率指标

…以及内存使用指标

…和磁盘使用情况指标

Coroot 可以解析日志并根据模式发现类似的消息

Pod 过滤

默认仪表板显示来自所有命名空间的 Pod。这不是最方便的事情,所以让我们来看看如何过滤掉它们。

您可以在项目设置中通过选择应用程序类别来执行此操作。应用程序可以按命名空间或类型进行分组。还有一些正则表达式可以用来制作命名空间模式——例如,你可以把它设置为 或 。

在上面的示例中,筛选是按命名空间完成的。这是一个相当方便的 Coroot 功能。通过应用这种筛选,您可以更准确地了解应用程序在命名空间中相互链接的位置。如果应用程序使用来自另一个命名空间(如 DBMS)的资源,则也应将其添加到类别中。

此功能的不足之处在于,当您导航到另一个部分时,所选类别会重置。

节点状态监控和告警

Coroot 提供了一些很酷的监控和通知功能

  • 您可以将其与依赖于 Slack、PagerDuty 和 Microsoft Teams 的 SRE 流程集成(遗憾的是目前不是最重要的,它将在其中发送有关部署过程的告警。
  • 您还可以配置 SLO 违规、CPU 利用率、Redis 不可用等告警。

对于每个 Kubernetes 资源(Deployment 或 StatefulSet,您可以指定一个指标来计算 SLO 和目标值。

我们使用 Slack 来了解 Coroot 中的警报工作原理。为此,我们将 Coroot 应用程序添加到 Slack 工作区,并指定了用于发送警报的 Oauth 令牌/通道(请参阅下面的 Coroot 界面)。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导,让我们一起学习成长 p1024b (备注Go)** [外链图片转存中…(img-Tw017jPd-1713244701917)]

本文地址:http://dh99988.xhstdz.com/quote/82905.html    物流园资讯网 http://dh99988.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


0相关评论
相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号