巡检的时候,发现etcd数据量较大,需要压缩处理
#首先确认数据情况
/usr/bin/etcdctl --endpoints=$(kubectl get no -owide|awk '$3 == "master"{print$1}'|xargs -I {} printf "https://{}:2379,"|sed 's/,$//') --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key endpoint status -w table
- 1.
- 2.
配置压缩
#登录masterj节点
chmod +x /usr/bin/etcdctl
export ETCDCTL_API=3
HOST1=10.156.140.178
HOST2=10.156.140.187
HOST3=10.156.140.189
#3个etcd节点ip分开执行
ENDPOINTS=https://$HOST1:2379
#获取当前版本
rev=$(/usr/bin/etcdctl --endpoints=$ENDPOINTS --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*')
#备注:echo $rev 验证有无数据输出
# 由于这里的ep是3个,需要检查revs中最大的版本,然后以最大的来压缩。
echo $revs
292113382 292113383 292113386
rev=292113386
#压缩掉所有旧版本
etcdctl --endpoints=$ENDPOINTS --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key compact $rev
#整理多余空间
usr/bin/etcdctl --endpoints=$ENDPOINTS --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/peer.crt --key /etc/kubernetes/pki/etcd/peer.key defrag
#执行完验证
/usr/bin/etcdctl --endpoints=$(kubectl get no -owide|awk '$3 == "master"{print$1}'|xargs -I {} printf "https://{}:2379,"|sed 's/,$//') --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key endpoint status -w table
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
所有评论(0)