版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
作为一个用于多集群Kubernetes监控、故障排除和自动化的开源平台,就像Docker用于部署应用程序的基础设施即代码一样,Robusta用于维护KubernetesCluster应用程序和处理其警报的基础设施即代码。Robusta概述作为一款用于KubernetesCluster故障排查的开源平台,其本质是为了弄清楚我们当前所构建的KubernetesCluster的健康状况,并针对所出现的告警行为进行合理解释以及给予我们相关修复建议。与大多数其他云应用程序一样,Robusta能够基于Helm安装和管理,其主要位于监控堆栈(Prometheus、Elasticsearch等)之上。从技术生态角度来看,Robusta既是一款Kubernetes的自动化引擎,也是一个多集群可观测性开源平台。Robusta通常与Prometheus一起协作使用,当然,也支持其他工具集成。基于其相关特性,通过监听KubernetesCluster中的相关事件,Robusta可以告诉我们为什么发出警报、同时发生了什么以及我们能够所采取的措施。除此之外,Robusta也能够改进我们现有的告警体系,或用于定义由APIServer更改触发的新告警流程,以革新现有落后的观测生态。Robusta功能特性Kubernetes自动化引擎即当我们所构建的KubernetesCluster中发生任何意外事件时所采取的自动操作。自动修复问题或收集有关问题的证据并在后续的时间进行调查、分析。1、自动修复当然,除了个别比较棘手的问题外,大多数常见的问题基本上都有已知的解决方法,基于Robusta,我们可以轻松地自动修复已知问题。例如,在YAML中配置修复操作或在Python中编写我们自定义的操作以实现完全可定制性。2、告警丰富Robusta获取所配置现有的告警规则,然后并自动提取有关受影响的Kubernetes资源的详细信息。例如,当某一KubernetesClusterNode的磁盘空间不足时,Robusta会显示历史图表。当Pod崩溃时,Robusta便会获取相关日志进行后续的调查、分析。Cluster观测性此平台能够基于KubernetesCluster的一体式、全方位进行观测,涉及告警仪表盘、不健康的资源、日志以及相关图标等。1、资源展示Robusta能够映射我们所构建的的KubernetesCluster拓扑并构建正在运行的应用程序列表以及识别每个人的健康问题并显示细节。除此之外,基于当前的运行状况,能够实时查看正在运行的Pod、CPU使用率、内存使用率以及有关工作负载的其他关键信息。Robusta记录了KubernetesCluster中发生的所有Kubernetes变更,能够准确查看YAML更改的内容以及它是否导致了问题等。2、Kubernetes原生追踪通常情况下,Robusta将KubernetesUI与警报和可观察性平台相结合,告警会自动映射到正确的Kubernetes资源,然后按命名空间或集群进行过滤告警信息。除此之外,要真正了解问题,我们往往需要有关各个Pod的详细日志和事件信息。然而,基于Robusta,使得我们无需在生产环境中运行Kubectl命令或在窗口之间跳转,而直接在Robusta中搞定所有的一切,比如,按需获取日志、显示图形并跟踪Pod的状态等。路由通知基于相关规则,基于Robusta统一通知服务,我们能够可以获取有关警报、失败的作业、应用程序更新以及我们所选择的任何其他内容的通知。1、事件通知Robusta能够更轻松地获得有关失败作业、CrashLoopBackOffs或重要Kubernetes对象的意外更改的通知。Robusta支持向Slack、MSTeams、Discord、PagerDuty、OpsGenie、WebEx等发送消息。除此之外,Robusta也能够从各种传入目的地接收数据,包括Prometheus和Elasticsearch。2、告警通知当我们将Prometheus警报直接发送到Slack时,这些警报通常缺乏上下文。而基于Robusta路由告警,我们可以将告警连接到相关日志和图表予以展现。内置告警基于Prometheus生态技术体系,Robusta采用了最流行的方式来监控KubernetesCluster并使其变得更好。同时,告警也增加了可观察性。以下为常用的场景,具体如下:1、Pod崩溃2、系统磁盘空间不足3、OOMKill4、请求超时5、其他事件场景示例:内存溢出场景当然,除了上述核心的特性外,Robusta也包含Timeline(时间轴)功能,基于时间轴,我们可以查看所有Prometheus警报的历史记录,以及与KubernetesCluster中的配置更改相关的记录等。Robusta工作原理上面我们简单介绍了Robusta的功能特性,接下来,我们来看一下其实现原理。基于Robusta的相关特性,其自动化实现(采用YAML配置,强调预构建的自动化)主要包含如下三个部分:1、Trigger即“何时运行?”,通常主要针对告警、日志以及事件更新等。Trigger触发器是启动自动化的条件。例如,失败的Kubernetes作业等。2、Action-动作即“做什么?”,Action动作是我们在自动化运行时执行的一系列相关操作等。例如,获取日志或收集Java堆转储。3、Sink-接收器即“最终归宿?”Sink接收器是发送任何输出的地方。例如,Slack渠道等。如下为Robusta具体工作原理结构:例如,针对Pod崩溃时的(即“RobustaCrashingPods”)的行为规则定义如下所示:triggers:-on_prometheus_alert:alert_name:KubePodCrashLoopingactions:-logs_enricher:{}sinks:-kafka假设,基于某种特定的原因,当我们所构建的KubernetesCluster中的某一个Pod发生崩溃时,此时,依据所定义的告警规则进行告警触发时,Robusta都会从正确的Pod中获取日志并将它们附加到告警中,并将会自动化把日志发送到Kafka中。Robusta参考架构基于上述参考架构,我们可以看到,整个Robusta架构的核心围绕“自动化引擎”进行开展,具体涉及如下组件:1、Robusta-Forwarder此组件主要连接到APIServer并监控K8sCluster的变化,并将它们转发给Robusta-Runner进行处理。2、Robusta-Runner此组件主要执行自定义的Playbooks,依据相关的业务规则。3、BundledPrometheusStack此组件为可选项,Robusta包括一个可选的嵌入式Prometheus堆栈,根据最佳实践预先配置了Kubernetes告警。如果我们在实际的场景中已经在使用了Kube-Prometheus-Stack,那么,则可以将其指向Robusta。4、WebUI此组件为可选项,我们可以依据实际的情况,进行WebUI配置,基于此,能够为我们提供一个单一的管理面板来观测跨多个K8sCluster的所有警报和Pod状态追踪。5、CLI此组件为可选项,RobustaCli通常具备两个主要用途,具体如下所示:(1)基于自动生成的Helm值使的Robusta安装变得更容易,便捷,有利于维护,节省资源成本;(2)可以手动触发Robusta故障排除工作流程(例如,我们可以从任何JavaPod应用来获取相关堆转储信息,以供排障、分析之用)。Robusta安装部署其实,从本质上来讲,Robusta的部署安装与其他应用程序一样,安装较为简单,官方给出了多种部署方式,这里,我们基于Helm进行安装,具体步骤如下所示。1、安装RobustaCli插件[leonli@Leon
robusta
]
%
python3
-m
pip
install
-U
robusta-cli
--no-cacheDefaultingtouserinstallationbecausenormalsite-packagesisnotwriteableCollectingrobusta-cliDownloadingrobusta_cli-0.10.11-py3-none-any.whl(230kB)|████████████████████████████████|230kB4.6kB/sCollectinghikaru<0.6.0,>=0.5.1-beta.0Downloadinghikaru-0.5.1b0-py3-none-any.whl(1.2MB)|████████████████████████████████|1.2MB25kB/sCollectingcolorlog<6.0.0,>=5.0.1Downloadingcolorlog-5.0.1-py2.py3-none-any.whl(10kB)Collectingtoml<0.11.0,>=0.10.2Downloadingtoml-0.10.2-py2.py3-none-any.whl(16kB)Collectingopsgenie-sdk<3.0.0,>=2.1.5Downloadingopsgenie_sdk-2.1.5-py3-none-any.whl(247kB)|████████████████████████████████|247kB19kB/sCollectingprometheus-client<0.13.0,>=0.12.0Downloadingprometheus_client-0.12.0-py2.py3-none-any.whl(57kB)...Collectingrobusta-cliDownloadingrobusta_cli-0.8.31-py3-none-any.whl(143kB)|████████████████████████████████|143kB25kB/sDownloadingrobusta_cli-0.8.30-py3-none-any.whl(143kB)...2、生成Robusta配置文件[leonli@Leon
robusta
]
%
robusta
gen-configRobustareportsitsfindingstoexternaldestinations(wecallthem"sinks").We'lldefinesomeofthemnow.
ConfigureSlackintegration?ThisisHIGHLYrecommended.[Y/n]:YIfyourbrowserdoesnotautomaticallylaunch,openthebelowurl:https://api.robusta.dev/integrations/slack?id=xxxxYou'vejustconnectedRobustatotheSlackof:devopscluster...3、安装Robusta[leonli@Leon
robusta
]
%
helm
install
robusta
robusta/robusta
-f
./generated_values.yaml
\
--setclusterName=devops-cluster4、查看Robusta资源[leonli@Leon
robusta
]
%
kubectl
get
pods
-A
|
grep
robusta至此,Robusta组件安装完成,我们可以通过其GUI查看所构建的相关资源信息。综上所述,Robusta作为一个自动化引擎,能够侦听不同的数据源,例如Kube
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工人劳务外包合同劳务外包合同3篇
- 新增合伙人合同3篇
- 房屋买卖合同补充协议范本3篇
- 新版团队旅游合同3篇
- 房屋买卖合同的抵押问题3篇
- 房屋买卖合同诈骗解析3篇
- 市场调研委托合同3篇
- 房屋买卖合同解除的合同变更3篇
- 教育培训机构贷款合同3篇
- 摄影器材租赁合同简易版3篇
- 2024年电子交易:电脑买卖合同
- 中国文化概论知识试题与答案版
- 期末复习提升测试(试题)(含答案)2024-2025学年四年级上册数学人教版
- 生和码头港口设施维护管理制度(3篇)
- 【MOOC】数字逻辑设计及应用-电子科技大学 中国大学慕课MOOC答案
- 研学活动协议书合同范本
- 换热器的原理及构造
- 校园安全形势会商研判制度(4篇)
- 铸牢中华民族共同体意识-形考任务3-国开(NMG)-参考资料
- 湖北省十堰市2023-2024学年高二上学期期末调研考试 地理 含答案
- 重庆市2023-2024学年六年级上册语文期末测试试卷(含答案)3
评论
0/150
提交评论