Kubernetes: Бэкап настроек кластера
В самом простом случае бэкап Kubernetes сводится к копированию настроек/сертификатов и созданию бэкапа etcd.
Пример для мастер-ноды:
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \ --cacert /etc/kubernetes/etcd/ssl/ca.pem \ --cert /etc/kubernetes/etcd/ssl/node-cert.pem \ --key /etc/kubernetes/etcd/ssl/node-key.pem \ snapshot save snapshot.db
Необходимо убедиться что сертификаты лежат в /etc/kubernetes/etcd/ssl/ и правильно указаны.
Если по какой-то причине необходимо использовать самую свежую версию etcdctl то можно запустить при помощи docker'а:
export BACKUP_DIR=/root/backup export BACKUP_FILE="etcd-snapshot-`date +%F-%H-%M`.db" sudo docker run --rm -v $BACKUP_DIR:/backup \ --network host \ -v /etc/kubernetes/etcd/ssl:/etc/kubernetes/etcd/ssl \ --env ETCDCTL_API=3 \ k8s.gcr.io/etcd:3.4.3-0 \ etcdctl --endpoints=https://127.0.0.1:2379 \ --cacert /etc/kubernetes/etcd/ssl/ca.pem \ --cert /etc/kubernetes/etcd/ssl/node-cert.pem \ --key /etc/kubernetes/etcd/ssl/node-key.pem \ snapshot save /backup/$BACKUP_FILE
Далее осталось только скопировать сертификаты из папки /etc/kubernetes/etcd/ssl/ и конфиги из /etc/kubernetes, упаковать с паролем в архив и положить на любое хранилище которое вы используете.