kuboard使用的etcd(单个节点)空间满了如何处理

 

1.在master节点通过命令进入etcd容器,pod名称替换成自己的

[root@master ~]# kubectl get pods -n kuboard
NAME                          READY   STATUS    RESTARTS   AGE
kuboard-etcd-6vmkm            1/1     Running   0          117m
kuboard-v3-7979bc788f-hzd8j   1/1     Running   0          106m

 

2.登录容器

kubectl -n kuboard exec -it kuboard-etcd-6vmkm sh

 

执行如下命令

# 端口自行查看 (不建议使用 127.0.0.1 使用 master 的网卡IP地址)
# 查看etcd的状态

# ETCDCTL_API=3 etcdctl --endpoints="192.168.1.108:2381" --write-out=table endpoint status
+--------------------+-----------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
|      ENDPOINT      |       ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+--------------------+-----------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| 192.168.1.108:2381 | ee66422a43e3b8f |  3.4.16 |   20 kB |      true |      false |         6 |        862 |                862 |        |
+--------------------+-----------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+

 

# 可以看到error信息中有一条警告信息:alarm:NOSPACE

 

# 压缩旧版本
ETCDCTL_API=3 etcdctl --endpoints="192.168.1.108:2381" compact $(ETCDCTL_API=3 etcdctl --endpoints="192.168.1.108:2381" endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*')

 

# 整理多余的空间
ETCDCTL_API=3 etcdctl --endpoints="192.168.1.108:2381" defrag

 

# 取消告警信息(之前有nospace的告警)
ETCDCTL_API=3 etcdctl --endpoints="192.168.1.108:2381" alarm disarm

 

# 重新查看etcd的状态(发现ERROR字段已为空)
ETCDCTL_API=3 etcdctl --endpoints="192.168.1.108:2381" --write-out=table endpoint status
# ERROR信息为空,且DB SIZE 已小于2G则表示成功

posted @ 2025-09-29 17:35  slnngk  阅读(21)  评论(0)    收藏  举报