s4e00
Подготовка лаборатории
Это демо версия первого урока, полная версия урока доступна при оформлении подписки.
Мы с тобой уже достаточно взрослые люди, поэтому не будем использовать поделки вида k3s, rancher и т.п. байду. Сразу сделаем правильно и отказоустойчиво. Настоятельно рекомендую заниматься на локальных виртуалках. Сердцем кластера мы сделаем ванильный kubernetes, который установим через kubeadm.
Важное уточнение! Если вздумал использовать minikube — сразу нет. Он не подойдет.
Для кластера мы поднимем 3 control ноды и 3 worker ноды. Как в лучших домах. По начинке смотри сам, если оперативка и процессор тащит, можешь делать от 4 CPU и 4 RAM на каждую машину. Я же начну с 2 CPU и 2 RAM, там уже по ситуации заскейлим если что-то жирное нужно будет погонять. Итого тебе понадобится 6 виртуалок.
Зачем 3 control ноды? Мы будем делать keepalived чтобы при отказе одной контрольной ноды, у нас все продолжало работать. Но если тебе это не нужно, можешь сделать конфиг 1 control + 2 worker.
Главное правило — кластер из control нод должен быть не четным. Кворум, все дела.
Кубер я буду поднимать в Proxmox, на обычных виртуальных машинах с Ubuntu 24.04 LTS, контейнеры в роде LXC для наших целей не подойдут. Нужны именно полноценные виртуальные сервера. Если денег много, можешь в облаке всё это развернуть.
Дополнительно тебе понадобится локальный DNS сервер и NFS сервер. DNS можешь поднять на мощностях PI-Hole либо Technitium. Если у тебя есть microtik, то в нем есть встроенный DNS сервер, тебе его будет достаточно. DNS нужен, чтобы не парится с айпишниками, да и CNAME нам сгодится. Но если уверен в своих силах, можешь обойтись без DNS сервера. Но настоятельно рекомендую поднять. У меня сейчас работает technitium, про него я писал тут.
А NFS сервер сделай на какой-нибудь отдельной виртуалке, он нам понадобится в будущем для Persistent volume. Я для этих целей буду использовать внешний TrueNAS, он умеет шарить папки по NFS протоколу. А ты сам придумай, как и на чём это реализовать.
Если ты дошел до этой темы, то вполне можешь сам поднять все эти штуки. Ну а если не можешь, но очень хочется, всё это есть в гугле, ну или на крайний случай спроси у ИИ.
Поехали. Будет муторно, долго, но к цели придём. Наберись терпения.
Первым шагом твоя задача будет раскатить 3 виртуальных сервера на Ubuntu 24. Берем 2 CPU / 2 RAM / 50 SSD. Диск можешь сделать побольше, если позволяют ресурсы.
Имена серверам я дал такие:
Это мастер (контрольные) узлы, из них мы будем делать HA кластер на базе (keepalived + haproxy) .
Эти имена пропиши в своём DNS сервере и направь на нужные IP адреса. Попингуй со своей машины по этим именам, убедись что всё подхватилось и заработало.
На каждом сервере прописываем hostname:
Не забываем менять m1 в зависимости от сервера. Этот пункт не всегда является обязательным, но порой на моменте установки ОС ты можешь ошибиться и прописать что-то другое.
Дальше на каждом из серверов прописываем адрес нашего локального DNS:
И прописываем DNS сервера (у тебя будут другие айпишники):
По необходимости закидываешь SSH ключи, чтобы тебе было комфортнее подключаться к серверам и работать с ними. Как это сделать, ты тоже уже должен это знать. Но если не знаешь, идешь сюда и ищешь по тегу #linuxfactory.
Если клонировал машины, как я, то не забудь на клонах сделать так:
sudo rm /etc/machine-id
sudo systemd-machine-id-setup
sudo ln -sf /etc/machine-id /var/lib/dbus/machine-id
reboot
Иначе машины у тебя получат одинаковые IP адреса и возникнет коллизия. Ну и hostname не забудь поменять при необходимости.
Такс, с подготовкой закончили. У нас под рукой 3 сервера, всё везде пингуется по именам, всё везде доступно.

Прям новогодняя ёлка, между серверами у меня также проходят пинги по именам.
В Proxmox получилось так:

В DNS сервере это выглядит так:

Поднимаем haproxy + keepalived
🔒 Полная версия урока доступна по подписке.