Kubernetes cluster recovery

Thank you for reading this post, don't forget to subscribe!

Вос­ста­нов­ле­ние кла­сте­ра kubernetes

Kubernetes име­ет 3 раз­лич­ных роли: master ноды, ноды etcd и worker ноды.
Часто роли masters и etcd объ­еди­не­ны, и име­ют репли­ка­цию в HA кластерах.
Отка­зы отдель­ных нод не при­ве­дут к ката­стро­фи­че­ским послед­стви­ям, но необ­хо­ди­мо как мож­но быст­рее вос­ста­но­вить рабо­то­спо­соб­ность кла­сте­ра, что­бы предот­вра­тить даль­ней­шие отказы.

Нода с ролью etcd не работоспособна

Про­ве­рим ста­тус ком­по­нен­тов с помо­щью ути­ли­ты kubectl

Вид­но, что один узел etcd не досту­пен, при этом коли­че­ство нод etcd долж­но быть нечет­ным, и одна из нод явля­ет­ся "лиде­ром".
При этом кла­стер может про­дол­жать рабо­тать в режи­ме поте­ри одной ноды из трех.
Создай­те новую ноду, уста­но­ви­те etcd, но не запус­кай­те его.

Сле­ду­ю­щий шаг, на одной из рабо­чих нод etcd уда­ли­те отка­зав­ший узел etcd из кла­сте­ра и добавь­те IP-адрес ново­го узла, про­верь­те пути к сер­ти­фи­ка­там, и обра­ти­те вни­ма­ние на добав­ле­ние пре­фик­са "member" перед име­нем ноды в назва­нии сертификата

после чего на новой ноде исправь­те кон­фи­гу­ра­ци­он­ный файл и запу­сти­те etcd

теперь на каж­дой master ноде вве­ди­те команду

Нода с ролью masters не работоспособна

про­вер­ка, ста­тус всех нод дол­жен быть ready

под­го­товь­те новую ноду, настрой­те ОС, firewall, swap и т.д., уста­но­ви­те docker, kubelet, kubeadm, kubectl. И добавь­те ее в кла­стер, как worker ноду (kubeadm join)

после вво­да в кла­стер поста­вим мет­ку master и запре­тим при­ни­мать поль­зо­ва­тель­ские поды

далее необ­хо­ди­мо ско­пи­ро­вать с рабо­чей master ноды ката­лог /etc/kubernetes
если в ката­ло­ге /etc/kubernetes/manifests пусто, то уста­но­ви­те служ­бы для master

уда­ли­те ста­рый master