TDC 集群 ETCD 空间配额扩容操作

  其他常见问题
内容纲要

问题背景


客户环境频繁出现etcd报错:mvcc: database space exceeded。
TCOS 3.3.0 及之前版本,etcd key space 默认大小为 2G;TCOS 3.3.0 版本之后默认值才修改为 8GB;

下面分别介绍如何TCOS 3.3.0版本如何修改etcd key spac空间配额。

详细说明


查看tcos版本

tcosctl version

file

查看当前etcd存储以及确认leader节点

ETCDCTL_API=3 etcdctl --cacert /srv/kubernetes/etcd-ca.pem --cert /srv/kubernetes/etcd.pem --key /srv/kubernetes/etcd-key.pem --endpoints ,, endpoint status -w table

例如:

ETCDCTL_API=3 etcdctl --cacert /srv/kubernetes/etcd-ca.pem --cert /srv/kubernetes/etcd.pem --key /srv/kubernetes/etcd-key.pem --endpoints https://172.18.131.111:2379,https://172.18.131.112:2379,https://172.18.131.113:2379 endpoint status -w table

file

下面步骤请对集群内每个etcd节点按顺序执行,一个etcd节点完成后做下一个节点,先操作查询出的follower节点,leader节点最后操作。

备份原etcd配置文件

cp -p /opt/kubernetes/manifests-multi/etcd.manifest /opt/kubernetes/manifests-multi/etcd.manifest.bak_$(date +%Y%m%d)

修改etcd配置文件

vim /opt/kubernetes/manifests-multi/etcd.manifest

在 spec.containers[0].command 中追加 –quota-backend-bytes=8589934592 \
例如:
file

保存并退出(:wq)

观察容器重启情况

Kubelet 会在约 20 秒内自动检测到配置文件变化并重启容器:

docker ps | grep etcd

file

节点健康检查

必须确认当前节点及其他节点均显示 healthy,再进行下一个节点操作。

ETCDCTL_API=3 etcdctl --cacert /srv/kubernetes/etcd-ca.pem --cert /srv/kubernetes/etcd.pem --key /srv/kubernetes/etcd-key.pem --endpoints ,, endpoint health

例如:

ETCDCTL_API=3 etcdctl \
  --endpoints=https://172.18.131.111:2379,https://172.18.131.112:2379,https://172.18.131.113:2379 \
  --cacert=/srv/kubernetes/etcd-ca.pem \
  --cert=/srv/kubernetes/etcd.pem \
  --key=/srv/kubernetes/etcd-key.pem \
  endpoint health

file

其他说明


如果集群已经出现报错:mvcc: database space exceeded,请按照这个文档先处理:https://intkb.transwarp.cn/posts/9550

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。