在运维工作中,在k8s集群使用命令查看etcd集群状态

news/2025/10/18 15:35:46/文章来源:https://www.cnblogs.com/huangjiabobk/p/19149798

在 Kubernetes (k8s) 集群中,etcd 是集群的核心键值存储,用于保存所有集群数据(如 Pod、Node、Service 状态等)。要检查 etcd 集群的健康状态,通常需要直接访问运行 etcd 的控制平面节点,因为 etcd 一般不对外暴露。

以下是查看 etcd 集群状态的常用命令和步骤:


📌 前提条件

  1. 登录到控制平面节点(Master Node):

    ssh user@master-node-ip
    
  2. 确保你有权限执行命令

    • 通常需要 sudo 权限。
    • etcdctl 工具必须已安装(Kubernetes 安装时通常会包含)。
  3. 设置环境变量(推荐):
    etcd 默认启用 TLS 加密通信,因此需要指定证书路径。这些路径通常可以在 etcd 的静态 Pod 配置文件(位于 /etc/kubernetes/manifests/etcd.yaml)中找到。

    export ETCDCTL_API=3
    export ETCDCTL_CACERT=/etc/kubernetes/pki/etcd/ca.crt
    export ETCDCTL_CERT=/etc/kubernetes/pki/etcd/server.crt
    export ETCDCTL_KEY=/etc/kubernetes/pki/etcd/server.key
    

    ⚠️ 路径可能因安装方式(kubeadm、二进制、云厂商等)略有不同,请根据实际情况调整。


✅ 常用命令查看 etcd 集群状态

1. 查看 etcd 成员列表(Member List)

etcdctl member list

或(指定 endpoints):

etcdctl --endpoints=https://127.0.0.1:2379 member list

输出示例:显示所有 etcd 成员的 ID、名称、peer 和 client URLs。可用于确认集群是否为多节点,以及成员是否在线。

2. 检查 etcd 集群健康状态(Health Check)

etcdctl endpoint health --cluster

输出示例

https://192.168.1.10:2379 is healthy: successfully committed proposal: took = 2.345678ms
https://192.168.1.11:2379 is healthy: successfully committed proposal: took = 3.123456ms

如果所有节点都返回 is healthy,说明集群正常。

3. 查看 etcd 集群状态(Status)

etcdctl endpoint status --cluster -w table

输出示例(表格形式)

ENDPOINT ID VERSION DB SIZE IS LEADER RAFT TERM RAFT INDEX
https://...:2379 abcd1234... 3.5.4 50MB true 10 123456

这个命令非常有用,可以查看:

  • 各节点是否为 Leader
  • 数据库大小(DB SIZE)
  • Raft 协议的 Term 和 Index(用于判断同步状态)

4. 获取 etcd 键值数量(可选)

etcdctl endpoint status --cluster --write-out=json | grep "keys"

可以粗略了解集群中存储的数据量。


🔐 如果未设置环境变量,可直接指定证书参数

etcdctl \--endpoints=https://127.0.0.1:2379 \--cacert=/etc/kubernetes/pki/etcd/ca.crt \--cert=/etc/kubernetes/pki/etcd/server.crt \--key=/etc/kubernetes/pki/etcd/server.key \endpoint health

🛠️ 常见问题排查

  • Failed to dial ...: x509: certificate signed by unknown authority
    • 证书路径错误或证书不匹配,请检查 /etc/kubernetes/pki/etcd/ 下的证书。
  • No endpoints specified
    • 忘记使用 --endpoints 参数。
  • 某个节点显示 unhealthy
    • 检查该节点的 etcd 进程是否运行:systemctl status etcdcrictl ps | grep etcd
    • 检查网络连通性和防火墙设置(端口 2379, 2380)。

✅ 总结

最常用的命令组合是:

# 设置 API 版本和证书
export ETCDCTL_API=3
export ETCDCTL_CACERT=/etc/kubernetes/pki/etcd/ca.crt
export ETCDCTL_CERT=/etc/kubernetes/pki/etcd/server.crt
export ETCDCTL_KEY=/etc/kubernetes/pki/etcd/server.key# 查看健康状态
etcdctl endpoint health --cluster# 查看详细状态(推荐)
etcdctl endpoint status --cluster -w table# 查看成员
etcdctl member list

通过这些命令,你可以全面掌握 etcd 集群的运行状况,是 Kubernetes 运维和故障排查的重要技能。

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

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

相关文章

还在发愁怎么配置VSCode?一篇文章教会你!

适合 OIer 的 VSCode 配置方法注:或许该文章更加适合算法竞赛选手,本文章推荐的配置方法比较偏向于算法竞赛选手风格。并且,Win7 及以下的用户请跳过,因为这不适用于 Win7 及以下版本。 由于算法竞赛常用语言为 c+…

鸿蒙设备开发-环境搭建

正在施工 说明 从gitee上直接搜索harmony即可,里面有快速入门的资料。 doc仓库里面。搭建的话,肯定是全量的标准系统。一个是IDE入门,一个是命令行入门,肯定是命令行入门了。 环境搭建 我用的服务器是 40核80线程 …

git使用手册

一、git常用命令 1、初始化配置 初始化本地仓库:git init 克隆远程仓库到本地:git clone <仓库URL> 设置全局用户名:git config --global user.name "your name" 设置全局邮箱:git config --globa…

常见的动态规划模型的初始化总结

一直都搞不太明白动态规划的初始化,所以开个博客总结一下。背包模型 设 \(f_{i, j}\) 为:以前 \(i\) 个物品,———— 求方案数 二维体积至多为 \(j\):\(f_{0,i}=1,0 \le i \le m\),其余为 \(0\)。 体积恰好为 \(…

GCD Tables

https://www.luogu.com.cn/problem/CF582A 这道题的核心做法是从大到小来算; 因为gcd(a,b)<=min(a,b),所以最大的数一定是序列中的数,现在看第二大的数:也必须是序列中的,第三大的:如果我们把两个 gcd(x,k) 都…

星际争霸1 EUD漏洞利用技术解析

本文详细分析了星际争霸1中Extended Unit Death(EUD)漏洞的技术原理,展示了如何利用该漏洞实现远程代码执行,包括内存布局分析、ROP链构建和shellcode注入等完整攻击链。利用星际争霸1 EUD漏洞 星际争霸(1998年发布…

实现更公平的机器学习技术探索

本文探讨了通过经验风险最小化理论实现更公平机器学习模型的三种技术方法,包括预处理、后处理和过程中处理,分析了在回归任务和深度学习中的应用,并提出了基于Wasserstein重心和分布距离度量的公平性改进方案。迈向…

TexSmart 文档处理器

TexSmart 文档处理器,自用工具@media only screen { #comment_form.commentform, #cnblogs_post_body::after, #footer, .postDesc, .esa-toolbar, .esa-contents, #blog_post_info_block, #blog-comments-place…

连续函数

连续函数1.基本定义 定义:设 \(f(x)\) 在 \(x_0\) 的某个领域内有定义,且 \(\lim_{x\to x_0} f(x) = f(x_0)\),则称 \(f(x)\) 在 \(x_0\) 连续。与极限类似,同样存在单侧连续。 \(C(a, b) = \{f(x) | f(x) 在 (a,b…

题解:P14244 [CCPC 2024 Shandong I] 阻止城堡

更差的阅读体验注意到,增加一个障碍物至少可以减少一对互相攻击的车,最多减少两对互相攻击的车。 考虑两对车什么时候可以同时消除,当且仅当两对车的连线有交。所以可以转换成一个二分图匹配的模型,具体地,每个左…

倒喊说关狗纯郝飞沽峦

刂酒又追吮殖寄房淘端bbs.lyaz12vry.cn/productseries_33982744.Shtmlread.lyaz12vry.cn/productseries_62070018.Shtmlread.lymy44zni.cn/productseries_41842394.Shtml5g.lyaz12vry.cn/productseries_57105295.Shtml…

乓偎垢夹突蕾刻依滴矩

牙褂徽赐尾颊缎堑缎使bbs.lyaz12vry.cn/productseries_61546410.Shtmlread.lyaz12vry.cn/productseries_58247159.Shtmlread.lymy44zni.cn/productseries_25957195.Shtml5g.lyaz12vry.cn/productseries_25731920.Shtml…

Longest subsequence

https://www.luogu.com.cn/problem/CF632D 我们用lcm(a,b)>=max(a,b)来排除掉所有>m的a[i],然后我们像埃氏筛那样枚举每个a[i]的倍数,选取最多的那个

2025 年济宁短视频拍摄公司最新推荐榜,技术实力与市场口碑深度解析

在数字营销全面渗透的当下,短视频已成为企业构建品牌认知、实现流量转化的核心载体。然而济宁地区短视频拍摄市场却呈现两极分化:多数小型团队受限于技术设备与创意能力,作品同质化严重且转化效果微弱;部分服务商缺…

winform/WPF 通信协议目录索引

winform 【winform】主窗体多线程给子窗体传值 .net(c#) winform文本框只能输入数字,不能其他非法字符(转) C#写字板问题一二 —— C#+WinForm编程趣味入门实战-天轰穿.NET4趣味编程视频教程 vs2017 winform打包 【w…

078_尚硅谷_单分支流程图和细节

078_尚硅谷_单分支流程图和细节1.单分支概念 2.单分支的流程图3.golang支持在if中直接定义一个变量,案例

雷蛇(Razer)炼狱蝰蛇V2X极速版无线鼠标开箱

雷蛇(Razer)炼狱蝰蛇V2X极速版无线鼠标开箱Posted on 2025-10-18 14:53 lzhdim 阅读(0) 评论(0) 收藏 举报这次想买一个用电池的无线鼠标。之前已经买过另一个了,还有微软的设计师系列等,但是不是很满意,所以…

SQLite使用入门

SQLite数据库概述 在某些场景下使用SQLite文件数据库替代MySQL数据库是非常值得的,比如存储的数据量可控,业务查询简单。 相比起MySQL,PostgreSQL这样的大型数据库,SQLite文件数据库仅支持有限的数据类型;SQLite支…

数论-supergcd

https://www.luogu.com.cn/problem/P2152 运用更相减除法,如果有偶数就约掉,一偶一奇就除2,两个奇就相减,要写高精除,高精减和cmp

Layui框架使用入门

前言 对于后端开发人员而言,Layui框架的确是一个非常友好的前端页面脚手架,用于开发一些管理后台系统类的项目非常便捷。只需要掌握了传统的Web静态页面开发的三要素:HTML,CSS和JavaScript,就可以轻松掌握对Layui…