排查 GKE on Azure 的 etcd 问题
本页面介绍如何解决 GKE on Azure 的 etcd 问题。
如果您需要其他帮助,请与 Cloud Customer Care 联系。etcd 数据磁盘已满
当 etcd 数据磁盘已满时,可能会发生以下错误,并且可以通过几种不同的方式观察到此错误:
etcd 日志可能会显示写入请求的超时错误:
rafthttp: failed to save KV snapshot (write /var/etcd/data/member/snap/tmp720030520: no space left on device)
您可能还会看到与对等方连接的超时错误:
rafthttp: health check for peer [peer-id] could not connect: dial tcp [peer-ip]:2380: i/o timeout etcd server doesn't start:
串行端口日志可能表明 etcd 因缺少空间而无法启动:
failed on file /dev/stdout (No space left on device)
要确定 etcd 实例的大小,请使用以下方法之一:
SSH
使用 SSH 连接到其中一个主节点,然后运行以下命令:
ETCDCTL_API=3 etcdctl --write-out=table endpoint status
DB_SIZE
列表示使用的大小,如以下精简示例输出所示:+------------------+------------------+---------+---------+ | ENDPOINT | ID | VERSION | DB SIZE | +------------------+------------------+---------+---------+ | 10.240.0.17:2379 | 4917a7ab173fabe7 | 3.5.0 | 45 kB | | 10.240.0.18:2379 | 59796ba9cd1bcd72 | 3.5.0 | 45 kB | | 10.240.0.19:2379 | 94df724b66343e6c | 3.5.0 | 45 kB | +------------------+------------------+---------+---------+
控制台
在控制台中,转到 Cloud Monitoring 页面。
选择 Metrics Explorer。
选择
metric etcd_mvcc_db_total_size_in_bytes
指标。
如需解决此问题,请按照适合您的存储提供商和操作系统的过程调整 etcd 数据磁盘的大小。添加足够的额外空间来应对未来的 etcd 增长。
调整磁盘大小后,检查磁盘空间是否仍显示警告:
ETCDCTL_API=3 etcdctl alarm list
如果最后一列报告
NOSPACE
,请按如下方式关闭警报:TCDCTL_API=3 etcdctl alarm disarm