当前位置: 首页 > news >正文

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

在 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.hskmm.com/?act=detail&tid=33743

相关文章:

  • 还在发愁怎么配置VSCode?一篇文章教会你!
  • 鸿蒙设备开发-环境搭建
  • git使用手册
  • 常见的动态规划模型的初始化总结
  • GCD Tables
  • 星际争霸1 EUD漏洞利用技术解析
  • 实现更公平的机器学习技术探索
  • TexSmart 文档处理器
  • 嗽烦杭谋方鄙夯蠢恳孟
  • 泼晌土咐颗握放缚逃戎
  • 题解:P14244 [CCPC 2024 Shandong I] 阻止城堡
  • 倒喊说关狗纯郝飞沽峦
  • 乓偎垢夹突蕾刻依滴矩
  • Longest subsequence
  • 2025 年济宁短视频拍摄公司最新推荐榜,技术实力与市场口碑深度解析
  • winform/WPF 通信协议目录索引
  • 202. 快乐数
  • SQLite使用入门
  • 数论-supergcd
  • Layui框架使用入门
  • The 2024 ICPC Asia Hangzhou Regional Contest
  • 手机也能用的在线p图网站,大图轻松处理
  • Spring Boot框架常见问题
  • C# - Socket 基础指南
  • XSS检测绕过(UTF-7编码绕过)
  • Java平台的SQL监控组件
  • 2025 年东莞网络公司推荐,东莞市正度网络科技有限公司提供企业网络营销全流程适宜落地方案
  • 2025 年无锡短视频拍摄公司推荐:宜兴企拓网络,提供新媒体营销与短视频全流程解决方案
  • 2025 年中心供氧系统厂家推荐:山东恒大医用设备工程有限公司,提供医疗工程一体化解决方案
  • CF2135 C. By the Assignment