混合云环境实现K8S可观测的6大策略

news2025/1/12 10:51:27

2023年,原生云应用及平台发展迅猛。大量企业都在努力发挥其应用程序的最大潜力,以确保极致的用户体验并推动业务增长。

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

在这个数字舞台上,K8S是大多数云原生应用程序和工作负载的首选平台,这个流行的开源工具有助于容器编排和发现、负载平衡和其他功能。根据一份报告,96%的公司目前已在其云系统中使用或正在评估K8S的实施。

图片

然而,随之而来的是一系列新的挑战。随着应用程序复杂性的增加,对有效的可观测性解决方案的需求也在增加,这些解决方案使企业能够深入了解其容器化的工作负载,也是混合云环境中管理和优化容器化应用程序的一个重要前提。

本文将深入K8S的可观测性,探索六种有效的策略,这些策略可以让企业在混合云环境中释放其容器化应用程序的全部潜力。

1、使用集群日志记录与日志聚合

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

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

利用K8S集群日志,您可以关联事件并识别K8S集群中的模式,从而实现高效的故障排除和故障原因分析。

想要在K8S中实现集群日志记录,您可以利用强大的日志聚合工具或云原生解决方案,如亚马逊观测日志或者谷歌云日志。这些工具提供了可扩展且高效的方法来收集、存储和分析来自 K8S 集群的日志。

2、利用分布式追踪实现端到端可见性

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

分布式追踪允许您追踪请求从入口到接触的所有微服务的流程,从而捕获有关每个步骤的宝贵信息。通过使用追踪库或代理检测应用程序,可以生成追踪数据,以显示每个服务的持续时间、延迟和潜在瓶颈。

在 Kubernetes 中利用分布式追踪的好处是非常显著的。

首先,它可以帮助您了解服务之间的依赖关系,从而实现更好的故障排除和性能优化。当请求出现延迟或错误时,您可以快速确定出现问题的服务或组件并采取纠正措施。

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

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

对企业而言,可以选择一些流行的分布式追踪解决方案。这些工具为有效收集和可视化追踪数据提供了必要的工具和基础设施。通过将这些解决方案集成到您的K8S部署中,可以全面了解您的微服务行为,并推动持续改进。

3、将K8S与APM解决方案集成

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

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

借助APM解决方案,您可以在请求通过各种服务时对其进行跟踪,并确定高延迟或资源冲突的区间。有了这些信息,就可以采取有针对性的措施来优化关键路径并提高应用程序的整体性能。

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

4、使用基于指标的监控

基于指标的监控构成了K8S中可观测性的基础。它包括收集和分析关键指标,这些指标提供了对您的K8S集群和应用程序的健康、性能和资源利用率的洞察。

谈到Kubernetes中基于指标的监控,有几个基本组件需要考虑:

节点级指标:监控Kubernetes集群中单个节点的资源利用率对于容量规划和基础设施优化至关重要。CPU使用率、内存使用率、磁盘I/O和网络带宽等指标有助于您识别潜在的资源瓶颈,并确保最佳分配。        

Pod级指标:Pod是Kubernetes的基本部署单位。通过监控与pod相关的指标,您可以评估它们的资源消耗、运行状况和整体性能。关键的pod级指标包括CPU和内存使用情况、网络吞吐量和请求成功率。  

容器级指标:pod中的容器封装了单独的应用程序组件。监控容器级指标有助于您了解特定应用程序服务或流程的资源消耗和行为。CPU使用率、内存使用率和文件系统使用率等指标提供了对容器性能的洞察。

  • 特定应用指标:根据应用程序的需求,您可能需要监控特定业务逻辑或领域的定制指标。这些指标可以包括交互率、错误率、缓存命中率或其他相关的性能指标。

图片

5、自定义Kubernetes事件增强可观测性

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

通过利用自定义事件,您可以在可观测性方面获得几个好处:

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

利用自定义K8S事件,您可以使用K8S事件挂钩(event hooks)、定制控制器,甚至使用K8S API开发您的事件驱动应用程序。通过定义事件触发器、捕获相关信息并对事件做出反应,您可以建立一个健壮的可观测性框架,补充传统的监视方法。

6、整合综合监控实现可观测性主动发现

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

在您的K8S环境中集成合成监控有几个主要好处:

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

可以利用专业工具将综合监控整合进你的K8S环境。这些工具提供了创建和部署综合监控、监控性能指标以及生成报告的能力。

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

7、支持微服务、k8s的开发工具

市场上的开发工具有很多,JNPF快速开发平台是一款基于SpringBoot+Vue3的全栈开发平台,采用微服务、前后端分离架构,基于可视化流程建模、表单建模、报表建模工具,快速构建业务应用,平台即可本地化部署,也支持K8S部署。

通过可视化拖拽的方式,传统模式下需要2 周完成开发的应用,用JNPF只要 2小时。用JNPF搭建应用,你只需要关注业务本身。数据存储、运行环境、服务器、网络安全等,平台为你全部搞定。

还配置了图表引擎、接口引擎、门户引擎、组织用户引擎等可视化功能引擎,基本实现页面UI的可视化搭建。内置有百种功能控件及使用模板,使得在拖拉拽的简单操作下,也能大限度满足用户个性化需求。体验地址:https://www.jnpfsoft.com/?csdn

由于篇幅有限,这边仅做带过介绍,可以自行体验了解。

8、总结

通过利用以上提到的6种策略,您可以增强对 K8S 部署的行为和性能的理解。实施这些策略将提供对分布式系统的全面洞察,从而实现高效的故障排除、性能优化、主动问题检测和改进的用户体验。

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

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

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

相关文章

赴日IT工作之中日假期大对比!是你想要的程序员生活吗?

说了这么多关于工作方面的事宜,今天咱们来聊聊大家都关心的假期问题吧!中国和日本的假期有什么区别呢?从天数上来看,其实中日假期都是16天左右,但是可能在调休方面,日本相比我国对员工层会有一点点优势&…

Linux环境下安装JDK(17)

1、官网下载 https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html 2、传到Linux上去,至于用什么工具,自行选择 3、虚拟机上,找到它,移到你想移的地方去 4、解压缩,换包名 tar -zxvf jdk…

Django快速入门

文章目录 一、安装1.创建虚拟环境(virtualenv和virtualenvwrapper)2. 安装django 二、改解释器三、创建一个Django项目四、项目目录项目同名文件夹/settings.py 五、测试服务器启动六、数据迁移七、创建应用八、基本视图1. 返回响应 response2. 渲染模板…

企业微信认证费用及年审的问题(收藏)

一、企业微信认证审核服务费用说明 企业微信认证的审核是委托第三方审核公司来履行的,对企业提交资料的真实性进行甄别和校验。针对中、大型规模企业,企业微信团队会以电话回访、征信核查等方式,对企业规模进行严格审核。针对大型规模企业&a…

Java分布式微服务3——Docker

文章目录 Docker介绍安装DockerDocker基础操作Docker服务的启动镜像命令容器命令1. 从docker hub去查看Nginx容器的运行命令2. 查看所有容器状态3. 查看容器日志4. 进入Nginx容器执行命令,修改Html内容,添加“Hello World”5. 停止与开始容器6. 删除容器…

错过NFT投资,你可能会后悔吗?

在过去的几年里,非同质化代币(NFT)以其独特性和创新性,迅速成为数字资产领域的热门话题。NFT代表了数字资产的所有权和独特性,为艺术、音乐、游戏和虚拟世界等领域提供了全新的可能性。然而,对于那些错过了…

使用 Docker 部署 Prometheus + Grafana 监控平台

使用 Docker 部署 Prometheus Grafana 监控平台 默认docker 已经安装好,我使用的是CentOS7 注意一定要开启服务器对应的端口 1. 安装Prometheus docker run -itd --nameprometheus --restartalways -p 9090:9090 prom/prometheus访问:http://ip:9090 2.安装Grafana #这里的$…

【AGC】付费下载上架下载后无法安装问题

【关键字】 AGC、付费下载、应用安装 【问题描述】 有开发者反馈用户下载后无法安装,采用未接入sdk,直接勾选付费-产品上架的方案,以前其他产品是能够正常安装的,现在不知道为啥。 报错信息:付费后显示“订单创建失…

对等离子体的认识

认识等离子体等离子体的产生等离子体的定义等离子体并不远 认识等离子体 等离子体的产生 物质由一百多种元素组成,不同元素结合成各种分子。大量的分子又依靠某种作用力结合或凝聚在一起,由于作用力的强弱不等而表现为各种不同的存在状态。 物质的存在状…

【数学基础】矩阵行列式

行列式意义是什么? 行列式等于它的各个列对应的向量张成的平行2n面体的体积,这是因为行列式是一个交替多重线性形式,而我们通常理解的欧式空间中的体积也是这样一个函数(单位立方体体积为1,沿某条边扩大c倍体积就扩大…

利用openTCS实现车辆调度系统(六)openTCS订单的使用

运输订单 由类的实例表示,描述了由车辆执行的进程。 通常,此过程是货物从一个地点到另一个地点的实际运输。 然而,A也可以只描述车辆到目的地位置的运动以及要执行的可选车辆操作。TransportOrderTransportOrder 以下所有内容都是 openTCS …

从源码层面深度剖析Spring循环依赖 | 京东云技术团队

以下举例皆针对单例模式讨论 图解参考 https://www.processon.com/view/link/60e3b0ae0e3e74200e2478ce 1、Spring 如何创建Bean? 对于单例Bean来说,在Spring容器整个生命周期内,有且只有一个对象。 Spring 在创建 Bean 过程中&#xff0…

DT昆虫绑定学习(没蒙皮)

SelectEdgeLoopSp; ConvertSelectionToVertices;selectType -ocm -alc false; selectType -ocm -polymeshVertex true; CreateCluster; 连接到物体 global proc matchTrns() { string $mtr[] ls -sl; if (size($mtr) < 2){ warning "MUST select 2 objects!"…

【C++】开源:ceres和g2o非线性优化库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍ceres和g2o非线性优化库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&…

抖音里面怎么把图片做成动态图片?在线gif生成工具分享

刷抖音的时候&#xff0c;很多人在制作一些老照片&#xff0c;一些静态的照片经过制作能变成动态的照片&#xff0c;许多朋友都不知道怎么将图片做成gif&#xff0c;下面就来为大家分享一下gif动态图片制作的方法&#xff0c;利用在线gif生成&#xff08;https://www.gif.cn&am…

论文分享--On the Difficulty of Evaluating Baselines A Study on Recommender Systems

与基线比较的数值评估在判断推荐系统中的研究时起着核心作用。在本文中,我们证明了正确运行基线是困难的。我们在两个广泛研究的数据集上证明了这个问题。首先,我们表明,在过去五年中,在许多出版物中使用的基线对Movielens 10M基准的结果是次优的。通过仔细设置一个普通矩阵…

Python远程ssh登录机器检查机器信息

文章目录 Python远程ssh登录机器检查机器信息check_env.sh和hosts.yaml文件如下演示 Python远程ssh登录机器检查机器信息 需要在hosts.yaml文件中中输入ssh主机名&#xff0c;端口&#xff0c;用户名&#xff0c;密码使用python3环境&#xff0c;执行python3 check_env.py为了…

兼容性测试的正确打开方式

前几天在我创建的技术交流群&#xff0c;几位同学聊起了兼容性测试相关的话题。有测试的方法技巧&#xff0c;有如何选择测试时的切入点&#xff0c;也有在质量和投入成本之间如何做平衡的思考。 翻了翻写过的技术文章&#xff0c;大多集中在后端、中间件以及稳定性测试方面&a…

评估软件缺陷优先级的6个维度

我们在软件开发中&#xff0c;团队往往面临多个任务&#xff0c;尤其是缺陷任务&#xff0c;如果不对缺陷任务进行优先级排序&#xff0c;按部就班地解决缺陷&#xff0c;那么一旦严重缺陷不能及时解决&#xff0c;往往会对项目造成较大影响&#xff0c;甚至直接影响项目进度。…

处理器方法的参数与返回值

文章目录 前言案例 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 可以简化代码的重复性和冗长性 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 案例 新建controller类代码&#xff1a; Controller public class Parameter…