hundreds-evening-84071
01/20/2025, 3:49 PMRKE2 automatically compacts etcd every five minutes, and defragments it when it starts up.
From this doc: https://gist.github.com/superseb/3b78f47989e0dbc1295486c186e944bf
Looked at output of this command:
for etcdpod in $(kubectl -n kube-system get pod -l component=etcd --no-headers -o custom-columns=NAME:.metadata.name); do kubectl -n kube-system exec $etcdpod -- etcdctl --cert /var/lib/rancher/rke2/server/tls/etcd/server-client.crt --key /var/lib/rancher/rke2/server/tls/etcd/server-client.key --cacert /var/lib/rancher/rke2/server/tls/etcd/server-ca.crt endpoint status -w json; done
"dbSize":2038177792, and "dbSizeInUse":65404928 (2GB and ~60MB)
So, manually did defrag
kubectl -n kube-system exec $(kubectl -n kube-system get pod -l component=etcd --no-headers -o custom-columns=NAME:.metadata.name | head -1) -- etcdctl --cert /var/lib/rancher/rke2/server/tls/etcd/server-client.crt --key /var/lib/rancher/rke2/server/tls/etcd/server-client.key --cacert /var/lib/rancher/rke2/server/tls/etcd/server-ca.crt defrag --cluster
and now dbSize is down to ~60MB
My question is; is it good idea to do defrag via cron like once a week?