Миграция проекта из AWS на Bare Metal (часть 2)
Кластер K8s
Итак, у нас есть большой сервер и было бы не плохо начать его наполнять. В первую очередь нам нужен кластер Kubernetes.
Деплой мастеров в режиме высокой доступности
Для начала я решил развернуть три мастера с балансировкой. Для чего это делается, я думаю, объяснять не надо.
Была взята вот эта дока и с кое-какими правками все было развернуто.
Ну и да, не руками, конечно, а со скриптованием всего и вся в Ansible.
Вообще, на будущее, подразумевайте, что все, что я делаю - автоматизируется и скриптуется по умолчанию.
Код внутренний, поэтому его я выдать вам не могу. Пусть это будет домашним заданием. ;)
В результате у меня появилось 4 виртуальных машинки: 1. HAProxy 2. Три штуки k8s-master
Все они между собой дружат и все работает нормально.
Worker ноды для K8S
С воркерами было интереснее. Мне надо было сделать так, чтоб был готовый шаблон машины, который клонируешь и запускаешь. Это тот минимум дейтсвий, которые надо сделать, чтоб добавить новый воркер в работу.
Принцип следующий: 1. Берем образ Debian 11 с поддержкой cloudinit 2. Расширяем его до немобходимого размера (qemu-img) 3. Ставим внутрь все, что нам необходимо (virt-customize) 4. Запихиваем туда rc.local с запуском присоединения к кластеру (virt-customize) 4. Убиваем существующий шаблон (qm) 5. Создаем новый шаблон машинки с новым диском (qm) 6. Профит
Таким образом мы можем обновлять шаблон без ручной работы. Если изщ этого шаблона склонить новую машину и ее запустить, то она просто заджойнится в кластер K8S и примет на себя нагрузку. Это именно то, что нам надо.
Дальше мы клонирование и старт новых воркеров заскриптуем в нашу внутреннюю утилиту и будет совсем красота. Ну а пока можно и руками запустить. Это не сложно и делается быстро.
Комментарии: