Etcd几个关键的监控指标

简介: Etcd是一个高可靠、分布式的键值存储系统,Kubernetes的设计基本都是围绕Etcd设计的,可谓成也Etcd,败也Etcd。Etcd负责Kubernetes集群的数据存储,提供了集群数据一致性保证及监测(watch)等机制,是整个集群的核心,但由于Etcd本身的性能限制,制约了Kubernetes集群的规模,当前官宣的最大节点数是5000,但目前原生Kubernetes在生产环境中基本都不超过3000个节点,所以针对Etcd的监控尤为重要。

Etcd在Kubernetes中的重要性


Etcd是一个高可靠、分布式的键值存储系统,Kubernetes的设计基本都是围绕Etcd设计的,可谓成也Etcd,败也Etcd。Etcd负责Kubernetes集群的数据存储,提供了集群数据一致性保证及监测(watch)等机制,是整个集群的核心,但由于Etcd本身的性能限制,制约了Kubernetes集群的规模,当前官宣的最大节点数是5000,但目前原生Kubernetes在生产环境中基本都不超过3000个节点,所以针对Etcd的监控尤为重要。

监控指标


在生产环境中,可以通过Prometheus很好地监控Etcd的状态

1932fa3d2a7a4e6f8286e7ac9afa7128.png

leader的切换频次


当Etcd通过raft协议选举出leader后,leader应该是固定不变的。如果leader一直发生切换,是非常不稳定的。Etcd提供了etcd_server_leader_changes_seen_total指标,表示Etcd的leader切换次数。生产环境如果在一个小时内发生超过三次的leader切换,需要发出告警。

提交失败次数


Etcd是一种基于日志的存储系统,无论是选主节点,还是数据存储都需要集群内大部分节点参与。在分布式系统中数据提交(proposal)失败的情况会大大增加。Etcd通过etcd_server_proposals_committed_total(已提交)、etcd_server_proposals_failed_total(提交失败)、etcd_server_proposals_pending(等待提交)表示集群的提交情况或生产环境。如果集群在一个小时内5次提交失败,可以认为是异常情况。

数据写入性能


Kubernetes集群规模如果超过了两百台,建议Etcd加装SSD硬盘,这样性能会提升很多。Etcd的性能主要取决于磁盘的读写性能,每次数据提交分离,follow节点都必须落盘后才回复leader节点。Etcd提供了etcd_disk_wal_fsync_duration_seconds_bucket(wal日志同步磁盘耗时)和etcd_disk_backend_commit_duration_seconds_bucket(数据提交写入耗时)。为了避免常委效应,这两个指标通常使用分位指标告警。如果0.99分位的wal日志磁盘同步超过0.5ms或者0.99分位的数据提交写入超过0.25ms,则发出告警。

grpc指标


无论是Etcd节点之间的交互,还是客户端连接Etcd,v3版本的API已经全部切换到grpc。相比http方式,grpc有更高的性能。Etcd通过etcd_grpc_requests_failed_total指标表示grpc请求失败的次数,除以etcd_grpc_total(grpc请求总数)得出失败率。如果大于0.1可以认为请求的失败次数过多,应该提醒注意。

raft 共识算法总结


c042e68b85dd464fa52e694d5a63aa09.png

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
存储 JSON NoSQL
ETCD教程-4.深入ETCD
目前etcd主要经历了3个大的版本,分别为etcd 0.4版本、etcd 2.0版本和etcd 3.0版本。
1436 0
ETCD教程-4.深入ETCD
|
Kubernetes 搜索推荐 前端开发
containerd 镜像构建工具 -- nerdctl 和 buildkit
containerd 镜像构建工具 -- nerdctl 和 buildkit
9534 0
|
6月前
|
设计模式 Java Go
Go中的switch的8种使用场景:没有你想的那么简单
在 Go 中灵活使用 switch,可以使代码更清晰、更易维护。 switch 是 Go 中不可或缺的控制结构之一
1010 0
|
6月前
|
人工智能 API 网络安全
告别Token浪费与信息滞后!OpenClaw阿里云/本地部署配置免费大模型API全攻略+搜索Skill安装使用教程
在2026年的AI智能体生态中,OpenClaw(Clawdbot)已经成为最主流的本地优先自动化框架,但大量用户依然陷入两个核心痛点:一是AI知识过期、一本正经胡说八道,只能依赖模型陈旧记忆;二是Token消耗极快,频繁解析PDF、重复调用模型导致成本飙升。很多人盲目安装浏览器自动化、办公类插件,却忽略了最核心、最省资源、最能提升上限的基础能力——搜索。
1908 1
|
Prometheus Kubernetes 监控
在k8S中,etcd是怎么监控的?
在k8S中,etcd是怎么监控的?
|
人工智能 Java 开发者
通义灵码:当AI成为你的编程搭档,效率革命已经到来
本文介绍了通义灵码作为AI编程伙伴的革命性意义及其技术特点。基于阿里云通义代码大模型CodeQwen1.5,它具备多模态代码理解、意图推理和跨语言知识融合能力,可重构开发者工作流,从智能编码到Debug预警再到文档自动化全面提升效率。数据显示,其能将常规开发时间缩短60%,错误率下降43%,新技术上手速度提升2倍。未来,通义灵码将推动需求-代码双向翻译、架构自演进等全新编程形态,助力开发者聚焦更高价值领域,开启人机共生的编程新时代。
1848 10
|
Prometheus 监控 Cloud Native
prometheus学习笔记之node-export
prometheus 监控 node-exporter
1802 7
|
监控 安全 数据库连接
【Go语言专栏】Go语言中的数据库连接池管理
【4月更文挑战第30天】本文探讨了Go语言中数据库连接池的概念、实现和最佳实践。连接池预先创建并维护数据库连接,减少建立和关闭连接的开销,提高效率和应用稳定性。文中提供了一个简单的连接池实现示例,并列出使用连接池的最佳实践,包括合理设置连接池大小、控制连接生命周期及错误处理等。Go语言的并发机制如协程和通道有助于实现线程安全的连接池。通过实际案例分析,文章旨在帮助开发者更好地理解和应用连接池技术。
644 0