热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于数据库:通过Kubernetes监控探索应用架构发现预期外的流量

简介:Kubernetes监控立足于利用监控之下的Kubernetes容器界面和底层操作系统,是Kubernetes集群软件栈端到端可观测性的一体化解决方案,在Kubernetes监控中能够同时看到关联的所有层的观测数据。咱们心愿通过Kubernetes监控的一系列最佳实际,让大家可能应用Kubernetes监控解决Kubernetes环境下辣手的可

简介: Kubernetes 监控立足于利用监控之下的 Kubernetes 容器界面和底层操作系统,是 Kubernetes 集群软件栈端到端可观测性的一体化解决方案,在 Kubernetes 监控中能够同时看到关联的所有层的观测数据。咱们心愿通过 Kubernetes 监控的一系列最佳实际,让大家可能应用 Kubernetes 监控解决 Kubernetes 环境下辣手的可观测问题。

大家好,我是阿里云云原生利用平台的炎寻,很快乐能和大家一起在 Kubernetes 监控系列公开课上进行交换。本次公开课冀望可能给大家在 Kubernetes 容器化环境中疾速发现和定位问题带来新的解决思路。

为什么须要 Kubernetes 监控?

很多同学对利用性能监控应该并不生疏,这类监控次要关注业务应用逻辑、利用框架和语言运行时,监控对象有线程池满,数据库连贯无奈获取,MySQL, 内存溢出,还有各种调用链异样栈等。随着 Kubernetes 容器化技术带来的云原生技术演进,下层利用的开发和运维变得更加简略,但复杂度是恒定的,下层的复杂度升高必然随同着底层的复杂度晋升。如下图所示,复杂度逐步转移到容器虚拟化层以及零碎调用内核层对各种虚拟化技术的反对。每一层都可能呈现问题,且这些问题会影响下层利用。比方容器虚拟化层的 Kubernetes 组件异样,如果调度器异样,Pod 将无奈调度影响利用;比方文件系统相干的零碎调用异样,下层利用无奈读取文件,造成利用问题;比方内核异样,利用过程无奈调度实现工作。

利用想要衰弱稳固的运行,须要的是软件栈端到端的衰弱稳固,尽管当初很多运维团队都搭建了利用监控和系统监控体系,但没有一个监控可能自顶向下、端到端的串联起来各层软件的行为,导致辣手的问题产生时,无从下手解决。在应用层,一个网络申请超时,在客户端和服务端看起来仿佛都没有问题,但实际上是网络层包发送 RTT 过高,重传率过高,亦或是 DNS 解析慢,或者是 CNI 插件慢。如何在 Kubernetes 容器化环境下做到端到端的可观测性是Kubernetes 监控呈现的意义。

Kubernetes 监控立足于利用监控之下的 Kubernetes 容器界面和底层操作系统。在容器虚拟化层,咱们通过以下五个数据源获取观测数据,通过 Kubernetes 管控组件 exporter 来获取 Kubernetes 管控组件的观测数据;通过 cAdvisor 获取容器的资源观测数据;通过 kube-state-metrics 获取 Kubernetes 资源的状态数据,还有事件和 Kubernetes 资源的状态以及条件数据。在零碎调用层,咱们通过 Kprobe/tracepoints 等 Linux tracing 技术获取观测数据;在内核层,咱们通过内核可观测模块获取观测数据,而后 Kubernetes 监控通过过程、容器、Kubernetes 资源和业务利用的关联关系向上关联买通利用性能监控,打造端到端的可观测性。所以 Kubernetes 监控是 Kubernetes 集群软件栈端到端可观测性的一体化解决方案,在 Kubernetes 监控中能够同时看到关联的所有层的观测数据。咱们心愿通过 Kubernetes 监控的一系列最佳实际,让大家可能应用 Kubernetes 监控解决 Kubernetes 环境下辣手的可观测问题。

咱们也将从两个类型去解说,第一类是发现问题,次要蕴含五类问题的发现:利用架构问题、性能问题、资源问题、调度问题和网络问题。第二类是定位问题,次要蕴含对以上五类发现的问题进行根因定位,并且提供修复倡议。

摸索利用架构,发现预期外的流量

Kubernetes 监控系列公开课第一节课的主题是“如何应用 Kubernetes 监控进行利用架构摸索,发现预期外的流量”,蕴含以下三点内容:

背景介绍:利用架构摸索的挑战;

典型场景:在哪些场景下,咱们须要进行利用架构的摸索;

最佳实际:介绍一种利用架构摸索的模式,高效的发现定位问题。

一、利用架构摸索的挑战

(1)混沌的微服务架构

在 Kubernetes 容器化环境里,微服务架构是最广泛的架构模式。在这种架构下,随着业务倒退,肯定会有越来越多的微服务,他们之间的关系也会越来越简单。在复杂度一直增长的状况下,一些常见架构问题就变得艰难,比方利用以后运行架构是怎么的,利用上游依赖服务是否失常,利用上游客户端流量是否失常,利用 DNS 解析是否失常,两个利用之间的连通性是否有问题等。因而,咱们要进行利用架构摸索,往往变得十分困难。

(2)多语言

在微服务架构外面,各个微服务通常能够应用不同编程语言,只有暴露出规范的服务即可。那么不同语言如何进行监控,是否有雷同的埋点模式,是否对应语言有好用高效的埋点工具呢?代码侵入对性能有什么影响,是否埋点代码会影响业务运行呢?这是多语言场景下面临的观测难题。

(3)多通信协议

在微服务架构外面,各个微服务之间的通信能够应用不同通信协议,比方 HTTP、gRPC、Kafka、Dubbo 等,往往咱们须要辨认这些协定能力疾速发现对应依赖服务的问题,然而辨认协定意味着了解各个协定,在适合的中央须要进行埋点,不同通信协议如何对立埋点代码侵入,是否会影响业务性能,这是通信协议场景下面临的观测难题。

二、典型场景

(1)架构感知

架构感知是依据实在的网络调用,将微服务作为节点,微服务之间的调用作为边,绘制出一张拓扑图。通过比照动态设计的冀望架构,咱们能够发现问题,比方是不是多了或少了某个微服务,微服务之间的关系是不是正确,通常在新利用上线、新地区开服、整体链路梳理等须要关注构造大图的场景应用。

(2)架构异样发现

架构异样发现是指通过自定义架构拓扑图中节点和边的异样规定显示对应的异样色彩,可能疾速发现异常的节点和边,通常在整体链路梳理和衰弱巡检等关注节点和边状态的场景下应用。

(3)关联剖析

通过异样发现定位到某个节点或者边异样之后,咱们通常须要关联关系的切换,疾速查看相干节点或者边的上下游以及对应的本身服务实例,一步一步放大问题范畴。

三、最佳实际

以上三个典型场景形成了残缺的实际流程:通过架构感知观测利用理论运行架构是否和预期统一,如果有结构性问题,须要进一步排查构造异样的服务,如果没有结构性问题,咱们能够进行下一步。通过异样发现观测是否有色彩异样的节点和边,如果没有其异样节点和边就最好,否则咱们进行下一步,定位到特定的节点和边之后,开始进行关联剖析,先剖析本身实例是不是有问题,再看上下游是不是有问题。

Kubernetes 监控是如何反对最佳实际的呢?首先是Kubernetes监控集群拓扑的架构感知能力。Kubernetes 监控通过关联实在的网络申请绘制出了利用架构拓扑。以后提供 Service 和 Workload 两种视图,前者是 Service 之间的服务调用,后者是 Deployment 、Daemonset、Statefulset 之间的服务调用。

进入拓扑图,默认对节点进行分组收敛,集群内按命名空间分组,集群外按服务类型进行分组。开展分组之后能够看到对应的节点和节点关系,点击节点能够看到选定工夫范畴内的性能指标聚合值和时序值,这些值会按网络协议进行划分,点击边能够看到选定工夫范畴内的性能指标聚合值和时序值,这些值会按网络协议进行划分,再配合节点过滤,比方查看两个特定命名空间的架构关系,以及节点查问,疾速查看一个节点,能够很好的对架构进行摸索。

再看 Kubernetes 监控的异样发现能力,Kubernetes 监控通过三个维度的异样条件,将节点和边绘制成异样的黄或者红的色彩。具体来说,这三个维度是性能指标异样,比如说错误率大于 10%,均匀响应工夫大于 500 毫秒;第二,资源指标异样,比方 CPU 使用率大于 70%,内存使用率大于 70%;第三,K8S 管控状态异样,比方 POD 始终无奈达到 ready 状态,在分组收起的状态下会显示节点分组的异样占比,开展分组能够看到特定的节点变得异样。通过该能力,咱们能够疾速发现特定的微服务或者微服务关系的异样。

Kubernetes 监控还具备关联剖析能力,反对查看特定节点的上下游,提供 3D 视图同时查看节点关联的上下游关系和本身的实力状态,能够在一张图进行所有关联数据的摸索,极大晋升问题定位的效率。

四、Kubernetes 监控的产品价值

阿里云 Kubernetes 监控是一套针对 Kubernetes 集群开发的一站式可观测性产品,它会关联起 Kubernetes 名下的所有指标、链路、日志和事件。次要具备六大个性:

代码无侵入:阿里云 Kubernetes 监控通过旁路技术,不须要对代码进行埋点即可获取到丰盛的网络性能数据。

语言无关:阿里云 Kubernetes 监控在内核层进行网络协议解析,反对任意语言、任意框架。

高性能:阿里云 Kubernetes 监控基于 eBPF 技术,能以极低的耗费获取丰盛的网络性能数据。

资源关联:阿里云 Kubernetes 监控通过网络拓扑、资源拓扑展现相干资源的关联。

数据多样:阿里云 Kubernetes 监控反对可观测的各种类型数据(监控指标、链路、日志和事件),涵盖端到端的软件栈。

整体性:阿里云 Kubernetes 监控通过控制台的场景设计、关联起架构感知拓扑、利用监控、Prometheus 监控、云拨测、衰弱巡检、事件核心、日志服务和云服务。

那么 Kubernetes 监控、利用性能监控、Prometheus 监控有什么异同点呢?下图清晰的表白了这三者的关系和区别,利用性能监控次要关注应用逻辑,框架与编程语言,而 Kubernetes 监控关注的是零碎网络和容器界面,同时会向上关联利用性能监控。Prometheus 监控是基础设施,Kubernetes 监控和利用性能监控的指标类数据将会存储在 Prometheus 监控中。

原文链接
本文为阿里云原创内容,未经容许不得转载。


推荐阅读
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • 使用Docker安装和运行Nexus
    本文介绍了使用Docker安装和运行Nexus的方法,包括docker-compose.yml配置和启动时可能出现的权限问题解决方法。同时提供了登录控制台验证安装的地址和登录信息。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
author-avatar
梁lxc_131
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有