两套k8s集群同一天同时出现etcd集群空间超过配额,kubectl get cs时发现所有的etcd均返回503报错,查看etcd的告警发现有NO SPACE的信息且etcdctl endpoints status中的DB SIZE大于2GiB。
版本信息
kubernetes版本:v1.17.0
etcd版本:3.3.10,运行方式为docker容器
解决步骤
注意:修复会导致所有节点Not Ready,需重启各个节点的kubelet
1、将API版本调整为3
$ export ETCDCTL_API=3
2、声明变量ETCD_ENDPOINT
$ ETCD_ENDPOINT=(https://xx:xx:xx:xx:2379,https://xx:xx:xx:xx:2379,https://xx:xx:xx:xx:2379)
$ ETCD_CAFILE=(/etc/ssl/etcd/ssl/ca.pem)
$ ETCD_CERTFILE=(/etc/ssl/etcd/ssl/node-master-1.pem)
$ ETCD_KEYFILE=(/etc/ssl/etcd/ssl/node-master-1-key.pem)
如果不清楚etcd证书存放的位置可以使用ps命令查看,当然endpoint也可以用这种方法
$ ps -ef | grep -v grep | grep apiserver |sed 's/ /\n/g' | grep etcd
--etcd-cafile=/etc/ssl/etcd/ssl/ca.pem
--etcd-certfile=/etc/ssl/etcd/ssl/node-master-1.pem<