Замена рабочего узла (ноды) в Kubernetes
Подготовка ноды
- Получите имя текущей ноды с помощью команды:
kubectl get nodes
- Сохраните название текущей ноды с помощью команды:
export NODE=<old-node-name>
- Создайте резервную копию Test IT.
- Если новая нода еще не была добавлена в кластер, добавьте ее.
- Отключите распределение новых рабочих нагрузок на старый узел с помощью команды:
kubectl cordon "{$NODE}"
Перенос рабочих нагрузок на новый узел
- Остановите активные рабочие нагрузки с помощью команды:
cd ~/testit helm -n <namespace> list helm -n <namespace> uninstall testit-frontend testit_frontend/ helm -n <namespace> uninstall testit-backend testit_backend/ kubectl get po -n <namespace> --watch
- Переустановите внутренний интерфейс (backend) с помощью команды:
helm -n <namespace> -f testit_backend/values-override.yaml upgrade --install testit-backend testit_backend/ # дождитесь запуска всех модулей внутреннего интерфейса kubectl -n <namespace> get pods --watch
- Переустановите внешний интерфейс (frontend) с помощью команды:
helm -n <namespace> -f testit_frontend/values-override.yaml upgrade --install testit-frontend testit_frontend/ # дождитесь запуска всех модулей внешнего интерфейса kubectl -n <namespace> get pods -l app=frontend --watch
- Восстановите Test IT из резервной копии.
- Удалите распределение новых рабочих нагрузок для старой ноды с помощью команды:
kubectl uncordon "{$NODE}"