Kubernetes etcd 变慢的定位与修复
apiserver 延迟升高、请求超时,etcd leader 频繁切换,日志出现 slow apply、fsync 慢或 leader changed。严重时整个控制面不可用。
etcdctl --endpoints=https://127.0.0.1:2379 endpoint health
etcdctl --endpoints=https://127.0.0.1:2379 endpoint status -w table
etcdctl --endpoints=https://127.0.0.1:2379 check perf
节点:
journalctl -u etcd --since '30 min ago' | tail -100
iostat -x 1 5
df -h
free -m
监控重点:etcd_disk_wal_fsync_duration_seconds、etcd_disk_backend_commit_duration_seconds、etcd_server_leader_changes_seen_total。
compact,再逐个成员 defrag;defrag 会阻塞,安排在低峰。etcdctl — 健康与状态iostat — 磁盘延迟journalctl — etcd 日志kubectl — apiserver 健康