Etcd几个关键的监控指标

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 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

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
2月前
|
Prometheus Kubernetes 监控
在k8S中,etcd是怎么监控的?
在k8S中,etcd是怎么监控的?
|
5月前
|
Kubernetes 监控 API
Kubernetes指标监控metrics-server
Kubernetes指标监控metrics-server
68 0
Kubernetes指标监控metrics-server
|
存储 缓存 Prometheus
【夜莺监控】管理Kubernetes组件指标(下)
【夜莺监控】管理Kubernetes组件指标(下)
|
Prometheus 资源调度 Kubernetes
【夜莺监控】管理Kubernetes组件指标(上)
【夜莺监控】管理Kubernetes组件指标(下)
|
JSON Prometheus 监控
Prometheus监控k8s
Prometheus监控k8s
199 0
|
存储 消息中间件 Prometheus
统一观测丨使用 Prometheus 监控 SNMP,我们该关注哪些指标?
统一观测丨使用 Prometheus 监控 SNMP,我们该关注哪些指标?
统一观测丨使用 Prometheus 监控 SNMP,我们该关注哪些指标?
|
存储 Prometheus 监控
Prometheus监控K8S(一)
Prometheus监控K8S(一)
458 0
Prometheus监控K8S(一)
|
存储 Prometheus 运维
通过Exporter收集一切指标
通过Exporter收集一切指标
通过Exporter收集一切指标
|
Prometheus Kubernetes 监控
Prometheus监控K8S(二)
Prometheus监控K8S(二)
108 0
|
Prometheus 运维 监控
通过Prometheus来做SLI/SLO监控展示
通过Prometheus来做SLI/SLO监控展示
通过Prometheus来做SLI/SLO监控展示