etcdserver: mvcc: database space exceeded
k8s的apiserver组件重启失败,通过journalctl -xeu kube-apiserver命令查看日志,找到了如下的报错
etcdserver: mvcc: database space exceeded
查看节点状态
这里,我们需要用到
etcdctl工具,一般二进制部署的k8s,都会带有这个工具,如果没有,可以去github下载指定版本的etcd二进制文件即可通过
etcdctl version查看当前API版本,以下的命令,需要使用API 3版本,如果不是API 3版本,需要在执行etcdctl前加上参数,示例:ETCDCTL_API=3 etcdctl endpoint status如果
etcd的--listen-client-urls参数有配置http://127.0.0.1:2379,以下的命令可以不加上--endpoints参数,如果需要加上--endpoints参数,就需要加上指定的证书路径通过
systemctl status etcd -l可以看到etcd启动时所带的参数,可以找到指定的证书路径,下面的证书路径,以自己实际的为准,不要纯复制黏贴
ETCDCTL_API=3 etcdctl \
--cacert=/etc/kubernetes/cert/ca.pem \
--cert=/etc/kubernetes/cert/etcd.pem \
--key=/etc/kubernetes/cert/etcd-key.pem \
--endpoints=https://172.31.243.179:2379 \
endpoint status --write-out="table"
--write-out="table"是输出的格式,可以是json,可以是table,默认是simple,这个参数可以不加
| ENDPOINT | ID | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
|---|---|---|---|---|---|---|---|---|---|
| https://172.31.243.179:2379 | f0a399bcc03bea5f | 3.4.12 | 6.4GB | true | false | 5 | 29659523 | 29659523 |
可以看到,这里的
db size已经达到6.4G,在etcd启动的时候,如果没有配置--quota-backend-bytes的大小,默认只有2G,因此,导致了apiserver无法写入etcd
获取旧版本号
ETCDCTL_API=3 etcdctl \
--cacert=/etc/kubernetes/cert/ca.pem \
--cert=/etc/kubernetes/cert/etcd.pem \
--key=/etc/kubernetes/cert/etcd-key.pem \
--endpoints=https://172.31.243.179:2379 \
endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9]*'
15151255得到的这个数据值,就是当前的版本号,当我们压缩的时候,他就变成旧版本号了
压缩旧版本
ETCDCTL_API=3 etcdctl \
--cacert=/etc/kubernetes/cert/ca.pem \
--cert=/etc/kubernetes/cert/etcd.pem \
--key=/etc/kubernetes/cert/etcd-key.pem \
--endpoints=https://172.31.243.179:2379 \
compact 15151255
清理碎片
ETCDCTL_API=3 etcdctl \
--cacert=/etc/kubernetes/cert/ca.pem \
--cert=/etc/kubernetes/cert/etcd.pem \
--key=/etc/kubernetes/cert/etcd-key.pem \
--endpoints=https://172.31.243.179:2379 \
defrag
再次查看节点状态
ETCDCTL_API=3 etcdctl \
--cacert=/etc/kubernetes/cert/ca.pem \
--cert=/etc/kubernetes/cert/etcd.pem \
--key=/etc/kubernetes/cert/etcd-key.pem \
--endpoints=https://172.31.243.179:2379 \
endpoint status
https://172.31.243.179:2379, f0a399bcc03bea5f, 3.4.12, 1.0 MB, true, false, 5, 29659523, 29659523,
db size这一块,变成了1.0MB了
清楚告警
查看告警
ETCDCTL_API=3 etcdctl \
--cacert=/etc/kubernetes/cert/ca.pem \
--cert=/etc/kubernetes/cert/etcd.pem \
--key=/etc/kubernetes/cert/etcd-key.pem \
--endpoints=https://172.31.243.179:2379 \
alarm list
memberID:f0a399bcc03bea5f alarm:NOSPACE
清楚告警
ETCDCTL_API=3 etcdctl \
--cacert=/etc/kubernetes/cert/ca.pem \
--cert=/etc/kubernetes/cert/etcd.pem \
--key=/etc/kubernetes/cert/etcd-key.pem \
--endpoints=https://172.31.243.179:2379 \
alarm disarm
然后再次重启我的apiserver
他来了,他来了,他活过来了,不用跑路的感觉,真好
etcdserver: mvcc: database space exceeded的更多相关文章
- 二进制部署kubernetes集群_kube-apiserver提示"watch chan error: etcdserver: mvcc: required revision has been compacted'
查看kube-apiserver状态 [root@yxz-cluster01 ~]# systemctl status kube-apiserver -l ● kube-apiserver.servi ...
- ETCD数据空间压缩清理
场景:做etcd数据镜像的时候出现如下错误 Error: etcdserver: mvcc: database space exceeded 通过查找官方文档https://coreos.com/e ...
- 什么是Etcd?
文章大部分引至:http://jolestar.com/etcd-architecture/ Etcd 按照官方介绍 Etcd is a distributed, consistent key-val ...
- Oracle 11gR2 Database UNDO表空间使用率居高不下-转载
客户的数据库是Oracle Database 11.2.0.3.0 for AIX 6.1 64bit的单机数据库.客户查询DBA_FREE_SPACE发现UNDO表空间的使用率高达98%以上.客户的 ...
- [转载]——Automatic Tuning of Undo_retention Causes Space Problems (文档 ID 420525.1)
Automatic Tuning of Undo_retention Causes Space Problems (文档 ID 420525.1) 转到底部 In this Document Sy ...
- Any changes made by a writer will not be seen by other users of the database until the changes have been completed
https://en.wikipedia.org/wiki/Multiversion_concurrency_control Multiversion concurrency control (MCC ...
- 【翻译自mos文章】rman 备份时报:ORA-02396: exceeded maximum idle time
rman 备份时报:ORA-02396: exceeded maximum idle time 參考原文: RMAN backup faling with ORA-02396: exceeded ma ...
- ORACLE:profile的管理
PROFILE的管理(资源文件) 当需要设置资源限制时,必须设置数据库系统启动参数RESOURCE_LIMIT,此参数默认值为FALSE 可以使用如下命令来启动当前资源限制: ...
- 四、oracle 用户管理(Profile)
oracle 用户管理 :profile + tablespace + role + user 一.使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据库时, ...
随机推荐
- SpringBoot2.4.2下配置Lettuce使用Redis
1. Springboot2.4.2下对Redis的基础集成 1.1 maven添加依赖 <dependency> <groupId>org.springframework.b ...
- Web开发之response
Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象. 我们要获取客户机提交过来的数据,只需要找request对象就行 ...
- 【刷题-LeetCode】162 Find Peak Element
Find Peak Element A peak element is an element that is greater than its neighbors. Given an input ar ...
- VictoriaMerics学习笔记(2):核心组件
核心组件 1. 单机版 victoria-metrics-prod 单一二进制文件 读写都在一个节点上 作者推荐单机版 特性 merge方式配置 通过HTTP协议提供服务 内存限制(防止OOM) 使用 ...
- 【解决了一个问题】腾讯云中使用ckafka生产消息时出现“kafka server: Message contents does not match its CRC.”错误
初始化的主要代码如下: config := sarama.NewConfig() config.Producer.RequiredAcks = sarama.WaitForAll // Wait fo ...
- elasticsearch之请求处理流程(Rest/RPC )
.Action概述 ES提供client供集群节点或java客户端访问集群用.client模块通过代理模式,将所有的操作都集成到client接口中.这样外部调用只需要初始化client就能够完成所有的 ...
- Tomcat服务器和Servlet版本的对应关系
Tomcat服务器和Servlet版本的对应关系 Servlet 程序从2.5版本是现在世面使用最多的版本(xml配置) 到了Servlet3.0后.就是注解版本的Servlet使用
- 操作系统的发展史(并发与并行)<异步与同步>《进程与程序》[非堵塞与堵塞]
目录 一:一:手工操作 -- 穿孔卡片 1.简介 二:手工操作方式两个特点: 三:批处理 -- 磁带存储 1.联机批处理系统 2.脱机批处理系统 3.多道程序系统 4.多道批处理系统 四:总结发展史 ...
- linux搭建本地和网络yum源
[mirrors.163.com] name=mirrors.163.com baseurl=http://mirrors.163.com/centos/7/os/x86_64/ enabled=1 ...
- linux关闭透明大页
echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transpare ...