Как сделать резервную копию etcd в кластере Kubernetes, созданном с помощью kubeadm - ошибка rpc: code = 13

У меня есть кластер K8s, созданный с помощью kubeadm, который состоит из главного узла и двух рабочих.

Я слежу за этой статьей документации, касающейся резервного копирования etcd: https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster

Мне нужно использовать etcdctl для резервного копирования базы данных etcd, поэтому я использую модуль etcd, работающий на главном узле, чтобы сделать это оттуда: kubectl exec -it -n kube-system etcd-ip-x-x-x-x sh

ПРИМЕЧАНИЕ. Главный узел размещает базу данных etcd по этому пути /var/lib/etcd, которая смонтирована на модуле как VolumeMount в /var/lib/etcd.

Следуя документу, я запускаю: ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 snapshot save snapshotdb, и он возвращает следующую ошибку:

Error:  rpc error: code = 13 desc = transport: write tcp 127.0.0.1:44464->127.0.0.1:2379: write: connection reset by peer

В чем проблема?


person codependent    schedule 16.07.2018    source источник


Ответы (2)


Мне удалось заставить его работать, добавив информацию о сертификатах в команду:

ETCDCTL_API=3 etcdctl --endpoints https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key /etc/kubernetes/pki/etcd/healthcheck-client.key snapshot save ./snapshot.db
person codependent    schedule 16.07.2018

Вы также можете проверить файл конфигурации Etcd в следующей строке на узле, на котором работает Etcd.

/etc/kubernetes/manifests/etcd.yaml

После получения команды в разделе команд конфигурации Etcd,

ETCDCTL_API=3 etcdctl --endpoints https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key /etc/kubernetes/pki/etcd/healthcheck-client.key

вы можете запускать команды Etcd, как показано ниже.

ETCDCTL_API=3 etcdctl --endpoints https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key /etc/kubernetes/pki/etcd/healthcheck-client.key member list
ETCDCTL_API=3 etcdctl --endpoints https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key /etc/kubernetes/pki/etcd/healthcheck-client.key snapshot save ./snapshot.db  
ETCDCTL_API=3 etcdctl --endpoints https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt --key /etc/kubernetes/pki/etcd/healthcheck-client.key snapshot status ./snapshot.db
person Erdi    schedule 14.06.2020