как восстановить кластеры HA из стекированной плоскости управления и узлов etcd - PullRequest
0 голосов
/ 09 января 2019

Я использовал kubeadm для настройки кластеров высокой доступности (3 мастера) для стекированной плоскости управления и узлов etcd, но когда я использую сброс kubeadm для уничтожения одного мастера, я больше не могу присоединить мастер к кластерам ha:

step1:

docker run --rm -it --net host -v /etc/kubernetes:/etc/kubernetes k8s.gcr.io/etcd:3.2.24 etcdctl --cert-file /etc/kubernetes/pki/etcd/peer.crt --key-file /etc/kubernetes/pki/etcd/peer.key --ca-file /etcd/kubernetes/pki/etcd/ca.crt --endpoints https://xxx.xxx.xxx.xxx:2379 member remove xxxxxxx

чтобы удалить плохой etcd;

step2:

docker run --rm -it --net host -v /etc/kubernetes:/etc/kubernetes k8s.gcr.io/etcd:3.2.24 etcdctl --cert-file /etc/kubernetes/pki/etcd/peer.crt --key-file /etc/kubernetes/pki/etcd/peer.key --ca-file /etcd/kubernetes/pki/etcd/ca.crt --endpoints https://xxx.xxx.xxx.xxx:2379 cluster-health
……
……
cluster is healthy

step3:

kubeadm get cs
……
……
etcd-0      Healthy    {"health":"true"}

step4:

kubeadm присоедините нового мастера к кластеру ха, но ошибитесь:

 etcd cluster is not healthy: context deadline exceeded

Любой может помочь мне решить эту проблему

1 Ответ

0 голосов
/ 09 января 2019

$ kubectl -n kube-system edit cm kubeadm-config затем удалите информацию о неверном узле ниже apiEndpoints, Например: удалить эти три строки ниже master1-K8S: advertiseAddress: 172.16.12.216 bindPort: 6443

наконец, вы можете использовать "kubeadm join", чтобы успешно соединить плоскость управления с кластерами HA !!!

...