混合云环境中 Kubernetes 可观测性的 6 个有效策略...

2023 年,原生云应用程序和平台将快速增长。组织不断努力最大限度地发挥其应用程序的潜力,确保无缝的用户体验并推动业务增长。

混合云环境的兴起以及 Kubernetes 等容器化技术的采用彻底改变了现代应用程序的开发、部署和扩展方式。

在这个数字领域,Kubernetes是大多数云原生应用程序和工作负载的首选平台,并被跨行业采用。

根据 2022 年的报告,96% 的公司已经在其云系统中使用或评估 Kubernetes 的实施。这个流行的开源实用程序对于容器编排和发现、负载平衡和其他功能很有帮助。

 然而,这种转变也带来了一系列新的挑战。

随着应用程序复杂性的增加,对强大的可观察性解决方案的需求也随之增加,使企业能够深入了解其容器化工作负载。Kubernetes 可观察性是在混合云环境中管理和优化容器化应用程序的一个关键方面。

在这篇文中,我们将深入研究 Kubernetes 可观察性,探索六种有效的策略,使企业能够在混合云环境中释放其容器化应用程序的全部潜力。

这些策略以行业专业知识和实际经验为后盾,将为您提供工具和知识,以增强 Kubernetes 部署的可观察性,从而推动业务成功。

了解 Kubernetes 中的可观察性

让我们首先从基础知识开始。

Kubernetes 是管理容器化应用程序的强大工具。但是,尽管其功能强大,但跟踪混合云环境中发生的情况可能很困难。这就是可观察性的用武之地。

可观察性是指在特定环境中收集、分析数据并对其采取行动。在 Kubernetes 上下文中,可观察性是指深入了解 Kubernetes 集群中运行的容器化应用程序的行为、性能和运行状况。

Kubernetes 可观察性基于三个关键支柱:

  1. 日志:日志提供有关 Kubernetes 集群内的行为和事件的有价值的信息。它们捕获重要的详细信息,例如应用程序输出、系统错误和操作事件。分析日志有助于解决问题、了解应用程序行为以及识别模式或异常。
  2. 指标:指标是定量测量,可深入了解 Kubernetes 环境的性能和资源利用率。它们包括 CPU 使用率、内存消耗、网络流量和请求延迟信息。监控和分析指标有助于识别性能瓶颈、规划容量并优化资源分配。
  3. 跟踪:跟踪可以实现对 Kubernetes 应用程序内跨微服务的请求流的端到端可见性。分布式跟踪捕获不同组件之间的计时数据和依赖关系,从而提供对请求路径的全面了解。跟踪有助于识别延迟问题、了解系统依赖性并优化关键路径以提高应用程序性能。

Kubernetes 可观察性过程通常涉及收集和分析来自各种来源的数据,以了解系统的内部状态并提供可操作的情报。通过实施正确的可观察性策略,您可以深入了解您的应用程序和基础设施,这将帮助您:

  • 快速检测并解决问题
  • 提高性能和可靠性
  • 优化资源使用
  • 满足合规要求

IT 团队正在快速采用可观察性流程。到 2026 年, 70% 的组织将成功应用可观察性来缩短决策延迟,同时增加分布式、有组织和简化的数据管理流程。

1.使用集中日志记录和日志聚合

为了深入了解分布式系统,集中式日志记录是一项重要策略。在 Kubernetes 环境中,应用程序跨越多个容器和节点,收集和分析来自各种来源的日志变得至关重要。

集中式日志记录涉及将不同组件的日志合并到一个易于访问的位置。集中式日志记录的重要性在于它能够提供系统行为和性能的整体视图。

通过Kubernetes 日志记录,您可以关联事件并识别 Kubernetes 集群中的模式,从而实现高效的故障排除和根本原因分析。

要在 Kubernetes 中实现集中式日志记录,您可以利用强大的日志聚合工具或云原生解决方案,例如Amazon CloudWatch Logs或 Google Cloud Logging。这些工具提供了可扩展且高效的方法来收集、存储和分析 Kubernetes 集群中的日志。

2. 利用分布式跟踪实现端到端可见性

在微服务分布在多个容器和节点的复杂 Kubernetes 环境中,理解不同组件之间的请求流和交互变得具有挑战性。这就是分布式跟踪发挥作用的地方,它可以在请求遍历各种服务时提供对请求执行路径的端到端可见性。

分布式跟踪允许您跟踪请求从入口点到它涉及的所有微服务的旅程,捕获有关每个步骤的有价值的信息。通过使用跟踪库或代理来检测您的应用程序,您可以生成跟踪数据,揭示每个服务的持续时间、延迟和潜在瓶颈。

在 Kubernetes 中利用分布式跟踪的好处是显着的。

首先,它可以帮助您了解服务之间的依赖关系和关系,从而更好地进行故障排除和性能优化。当请求遇到延迟或错误时,您可以快速识别负责的服务或组件并采取纠正措施。

其次,分布式跟踪允许您测量和监控单个服务的性能及其交互。

通过分析跟踪数据,您可以识别性能瓶颈、检测低效的资源使用情况并优化系统的整体响应能力。这些信息对于容量规划和确保Kubernetes 环境的可扩展性非常宝贵。

有几种流行的分布式跟踪解决方案可用。这些工具提供了有效收集和可视化跟踪数据所需的仪器和基础设施。通过将这些解决方案集成到 Kubernetes 部署中,您可以全面了解微服务的行为并推动持续改进。

3. 将 Kubernetes 与 APM 解决方案集成

为了在 Kubernetes 中实现全面的可观察性,必须将您的环境与应用程序性能监控 (APM) 解决方案集成。APM 解决方案提供超越传统指标和日志的高级监控功能,提供对各个应用程序组件的性能和行为的洞察。

APM 集成的主要好处之一是能够检测和诊断 Kubernetes 应用程序中的性能瓶颈。

借助 APM 解决方案,您可以在请求遍历各种服务时跟踪请求,并识别高延迟或资源争用的区域。有了这些信息,您就可以采取有针对性的行动来优化关键路径并提高整体应用程序性能。

许多 APM 解决方案提供专用的 Kubernetes 集成,可以简化容器化应用程序的监控和管理。这些集成提供了预配置的仪表板、警报和检测库,可简化 Kubernetes 环境中 APM 数据的捕获和分析。

4.使用基于指标的监控

基于指标的监控构成了 Kubernetes 中可观察性的基础。它涉及收集和分析关键指标,以深入了解 Kubernetes 集群和应用程序的运行状况、性能和资源利用率。

当涉及 Kubernetes 中基于指标的监控时,需要考虑几个基本组件:

  • 节点级指标: 监控 Kubernetes 集群中各个节点的资源利用率对于容量规划和基础设施优化至关重要。CPU 使用率、内存使用率、磁盘 I/O 和网络带宽等指标可帮助您识别潜在的资源瓶颈并确保最佳分配。
  • Pod 级指标: Pod 是 Kubernetes 中部署的基本单位。通过监控与 Pod 相关的指标,您可以评估其资源消耗、运行状况和整体性能。关键的 Pod 级别指标包括 CPU 和内存使用情况、网络吞吐量和请求成功率。
  • 容器级指标: pod 内的容器封装了各个应用程序组件。监控容器级指标可帮助您了解特定应用程序服务或进程的资源消耗和行为。CPU 使用率、内存使用率和文件系统利用率等指标可提供对容器性能的深入了解。
  • 应用程序特定的指标:根据应用程序的要求,您可能需要监视特定于您的业务逻辑或域的自定义指标。这些指标可能包括事务率、错误率、缓存命中率或其他相关性能指标。

 基于指标的监控架构图

5. 使用自定义 Kubernetes 事件来增强可观察性

自定义事件在 Kubernetes 组件之间以及 Kubernetes 和外部系统之间进行通信。它们可以发出重要事件的信号,例如部署、扩展操作、配置更改,甚至容器内特定于应用程序的事件。

通过利用自定义事件,您可以在可观察性方面实现多项优势:

  • 主动监控: 自定义事件允许您定义和监控需要注意的特定条件。例如,您可以创建事件来指示资源何时不足、Pod 何时遇到故障或何时超过特定阈值。通过捕获这些事件,您可以在问题升级之前主动检测并解决问题。
  • 上下文信息: 自定义事件可以包含其他上下文信息,有助于排除故障和分析根本原因。您可以附加相关详细信息,例如错误消息、时间戳、受影响的资源或任何其他可深入了解事件重要性的元数据。这种额外的背景有助于更有效地理解和解决问题。
  • 与外部系统集成: Kubernetes 自定义事件可以由外部系统使用,例如监控平台或事件管理工具。集成这些系统允许您根据特定事件触发自动响应或通知。这简化了事件响应流程并确保及时解决关键问题。

要利用自定义Kubernetes 事件,您可以使用 Kubernetes 事件挂钩、自定义控制器,甚至可以使用 Kubernetes API 开发事件驱动的应用程序。

通过定义事件触发器、捕获相关信息并对事件做出反应,您可以建立一个强大的可观察性框架来补充传统的监控方法。

6. 结合综合监控以实现主动可观察性

综合监控模拟用户旅程或代表与应用程序日常交互的特定事务。这些综合测试可以安排在不同的地理位置定期运行,模仿用户行为并测量关键性能指标。

在 Kubernetes 环境中整合综合监控有几个主要好处:

  • 主动问题检测: 综合测试允许您在实际用户受到影响之前检测到问题。通过定期模拟用户交互,您可以识别性能下降、错误或无响应的组件。这种早期检测使您能够主动解决问题并保持应用程序的高可用性。
  • 性能基准测试:综合监控为性能基准测试和 SLA 合规性提供基准。您可以通过从不同位置运行一致的测试来测量正常条件下的响应时间、延迟和可用性。这些基准可作为检测异常和确保最佳性能的参考。
  • 地理洞察:综合测试可以配置为在不同的地理位置运行,从而深入了解不同地区的应用程序的性能。这有助于识别可能影响用户体验的延迟问题或区域差异。通过根据这些见解优化应用程序的性能,您可以确保全球范围内一致的用户体验。

您可以利用专门的工具将综合监控合并到您的 Kubernetes 环境中。这些工具提供了创建和安排综合测试、监控性能指标以及生成报告的功能。

为传统和基于微服务的应用程序获得 Kubernetes 可观察性的一种方法是使用 Datadog、Splunk、Middleware 和 Dynatrace 等第三方工具。该工具捕获指标和事件,提供多个现成的报告、图表和警报以节省时间。

最后

本文探讨了在混合云环境中实现 Kubernetes 可观察性的六种实用策略。

通过利用集中式日志记录和日志聚合、利用分布式跟踪、将 Kubernetes 与 APM 解决方案集成、采用基于指标的监控、合并自定义 Kubernetes 事件和综合监控,您可以增强对 Kubernetes 部署的行为和性能的理解。

实施这些策略将为您的分布式系统提供全面的见解,从而实现高效的故障排除、性能优化、主动问题检测和改进的用户体验。

无论您是运行小规模 Kubernetes 环境还是管理复杂的混合云部署,应用这些策略都将有助于应用程序的成功和可靠性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/31958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MCUXpresso for VS Code -- 基于VSCode开发RT1176

MCUXpresso for VS Code 是nxp推出插件,旗下MCX LPC, Kinetis和i.MX rt等MCU,都能在VS Code平台进行嵌入式开发。功能框图如下: 前期准备: 软件环境: windows(实际可以跨系统,linux和mac没有测试) VS Code ninja CMa…

【01】基础知识:typescript安装及使用,开发工具vscode配置

一、typescript 了解 typeScript 是由微软开发的一款开源的编程语言。 typeScript 是 javascript 的超级,遵循最新的 es6、es5规范。 typeScript 扩展了 javaScript 的语法。 typeScript 更像后端 java、C# 这样的面向对象语言,可以让 js 开发大型企…

Oracle-创建PDB

Oracle-创建PDB 创建PDB的方式 从PDB$SEED新建PDB克隆已存在的PDB 本地PDB克隆到同一个CDB中将远程PDB克隆到CDB中将非CDB插入或克隆到CDB中通过插拔的方式创建PDB sql 命令语法 条件 CDB必须open并且read write模式连接CDB$ROOT 用户并且具有CREATEPLUGGABLEDATABASE系统权…

如何快速解决集成环信IM遇到的问题?

1、环信FAQ频道发布了 环信FAQ帮助中心提供了各客户端、RESTful API、环信控制台以及商务相关的集成环信常见问题及解决方法,帮您快速解决集成问题 2、当我有问题时,从哪里进FAQ? 干脆收藏这个网址:https://faq.easemob.com/ 环…

Android的学习系列之Android Studio Setup安装

Android的学习系列之Android Studio Setup安装 [TOC](Android的学习系列之Android Studio Setup安装) 前言Android平台搭建总结 前言 还是项目需要,暂时搭建安卓的运行平台。 Android平台搭建 安装包 双击安装包,进入安装。 下一步 根据自己需求&a…

Flink源码之JobMaster启动流程

Flink中Graph转换流程如下: Flink Job提交时各种类型Graph转换流程中,JobGraph是Client端形成StreamGraph后经过Operator Chain优化后形成的,然后提交给JobManager的Restserver,最终转发给JobManager的Dispatcher处理。 Completa…

24数据结构-图的基本概念与存储结构

目录 第六章 图6.1 图的基本概念知识回顾 6.2 图的储存结构(邻接矩阵法)1. 数组表示法(1) 有向图,无向图的邻接矩阵 2. 定义邻接矩阵的结构3. 定义图的结构4. 构造图G5. 特点 第六章 图 6.1 图的基本概念 图是一种非线性结构 图的特点&am…

手把手教你快速实现内网穿透

快速内网穿透教程 文章目录 快速内网穿透教程前言*cpolar内网穿透使用教程*1. 安装cpolar内网穿透工具1.1 Windows系统1.2 Linux系统1.2.1 安装1.2.2 向系统添加服务1.2.3 启动服务1.2.4 查看服务状态 2. 创建隧道映射内网端口3. 获取公网地址 前言 要想实现在公网访问到本地的…

海康威视iVMS综合安防系统任意文件上传(0Day)

漏洞描述 攻击者通过请求/svm/api/external/report接口任意上传文件,导致获取服务器webshell权限,同时可远程进行恶意代码执行。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和…

为什么商业基础软件需要开源

Bytebase 本身是一家商业软件公司,而作为最核心资产的代码从 Day 0 却是开源的。同时我们还是 star-history.com 的运营者,大家在各种开源渠道会看到它生成的图: 一直以来,常会被别人问起的一个问题,就是为什么 Byteba…

【学习日记】【FreeRTOS】任务句柄、任务控制块TCB、任务栈、任务、就绪表详解

写在前面 本文是对FreeRTOS中任务句柄、任务控制块TCB、任务栈、任务、就绪表详解。 一、裸机和RTOS中函数存储位置详解 左图为裸机开发时 RAM 的使用情况,右图是使用了 FreeRTOS 后 RAM 的使用情况(图片来自野火)。 无论是裸机开发还是Fr…

【docker】设置 docker 国内镜像报错,解决方案

一、报错: [rootlocalhost ~]# systemctl restart docker Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.二、原因&#xf…

实现分布式事务:Java与MySQL的XA事务协调

目录 一、什么是XA事务 二、Java中的XA事务支持 三、MySQL的XA事务协调 四、注意事项和最佳实践 五、基于 java 语言的开发工具 六、小结 分布式事务是在跨多个数据库或服务之间保持一致性的重要机制。Java与MySQL的XA(eXtended Architecture)事务…

NPM包的安装、更新、卸载

目录 1、下载安装全局包 2、解决全局安装包时的EACCES权限错误 2.1 重新安装NPM 2.2 手动更改npm的默认目录 3、更新从注册表下载的包 3.1 更新本地包 3.2 更新全局安装的软件包 3.3 确定哪些全局包需要更新 3.4 更新单个全局包 3.5 更新所有全局安装的软件包 4、在项…

【ASP.NET MVC】使用动软(五)(13)

一、问题 前文完成的用户登录后的首页如下: 后续账单管理、人员管理等功能页面都有相同的头部,左边和下边,唯一不同的右边内容部分,所以要解决重复设计的问题。 二、解决方法——使用布局页 在Views上右键添加新建项&#xff…

多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测

多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.Matlab基于ZOA-CNN-BiGRU-Attention斑马优化卷积双向门控循环单元网络…

【云原生】Kubernetes控制器中DaemonSet与Job的使用

目录 DaemonSet 1 什么是 DaemonSet 2 使用 DaemonSet Job 1 什么是 Job 2 使用 Job 3 自动清理完成的 Job 控制器无法解决问题 DaemonSet 1 什么是 DaemonSet DaemonSet | Kubernetes DaemonSet 确保全部(或者某些)节点上运行一个 Pod 的副本…

eeglab(自用)

目录 1.加载、显示数据 2.绘制脑电头皮图 3.绘制通道光谱图 4.预处理工具 5.ICA去除伪迹 5. 提取数据epoch 1.加载、显示数据 观察事件值(Event values):该数据集中包含2400个事件,每个事件指定了EEG.event结构的字段Type(类型)、position(位置)和…

检测新突破 | AlignDet:支持各类检测器自监督新框架(ICCV2023)

引言 论文链接:https://arxiv.org/abs/2307.11077 项目地址:https://github.com/liming-ai/AlignDet 这篇论文主要研究目标检测领域的自监督预训练方法。作者首先指出,当前主流的预训练-微调框架在预训练和微调阶段存在数据、模型和任务上的…

【技巧】如何设置Word文档部分内容“限制编辑”?

我们知道,Word文档可以设置“限制编辑”,也就是保护文档不被随意更改。 那如果只想保护文档中的部分内容,其他内容还是随意编辑更改,是否可以设置部分内容“限制编辑”?答案是可以的,下面小编来举例说明一…