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, упаковать с паролем в архив и положить на любое хранилище которое вы используете.

  • devops/k8s/k8s-backup.txt
  • Последнее изменение: 2022/03/08 14:44
  • 127.0.0.1