Установка и настройка мини кластера Kubernetes 1.32 на RedHat RHEL 9.5 или Rocky Linux 9.5

Установка и настройка мини кластера Kubernetes 1.32 на RedHat RHEL 9.5 или Rocky Linux 9.5Ах, установка Kubernetes на RHEL 9 – это почти как приготовление борща: кажется, что всё просто, но если не добавить нужных специй и не соблюсти порядок, то вместо сытного обеда получишь бурю в кастрюле. Итак, вооружаемся терпением и командной строкой – сегодня мы погружаемся в мир узлов, портов и загадочного SELinux.

Начнем с того, что у нас есть два типа узлов.

Представьте их как два вида домашних питомцев: одни требуют 4 ГБ ОЗУ и 4 ядра процессора – такие себе котята, а другие – более прожорливые псы с 16 ГБ и 8 ядрами. Кстати, напомню анекдот про системного администратора: «Почему админы любят кошек? Потому что они тоже любят сидеть на клавиатуре и игнорировать команды».

В нашем случае «кошки» – это лёгкие узлы управления; «псы» – рабочие узлы. Надеюсь, ваши сервера ведут себя покладисто!

Перед тем как начать танцы с бубном в терминале, установим необходимые инструменты: nano (для тех, кто любит простоту), mc (классика жанра), iputils и curl (на случай если захотите заглянуть за кулисы сети). Знаете, почему админ всегда берет с собой nano?

Потому что vim он освоит только после третьей чашки кофе. Ну а bash-completion спасет от головной боли при наборе длиннющих команд.

Далее идёт магия именования хостов. Выглядит это примерно так: sudo hostnamectl set-hostname “kube-apiserver.kalyuzhnyy.ru” – звучит почти как заклинание из Гарри Поттера! Только вместо волшебной палочки у вас SSH-подключение к серверу.

Главное — не перепутать имена узлов иначе ваши контейнеры начнут спорить между собой кто главный.

И вот наступает момент истины — редактирование /etc/hosts на каждом узле. Добавляем IP-адреса и имена серверов словно расставляем гостей за праздничным столом. Можете представить себя диджеем на вечеринке сетевых протоколов!

Но будьте осторожны: если IP-адреса перепутаете — получите настоящий хаос в стиле русского роутера.

Теперь отключаем swap. Это как сказать вашему ноутбуку: «Дружище, отдыхать будем позже».

Swap — это подкачка памяти; Kubernetes не любит её включенной — мол, зачем нам ленивость? Помните анекдот про программиста который сказал: «Swap? Я лучше посплю!»?

Так вот наш кластер спать не собирается!

SELinux переводим в режим permissive — то есть он теперь наблюдает за происходящим без особого вмешательства. Как строгий учитель на дистанционном уроке: видит всё, но молчит (ну или почти). Если вдруг забудете переключить SELinux обратно — кластер может превратиться в настоящую зону боевых действий.

Переходим к настройке фаервола – тут начинается настоящее веселье! Чтобы открыть нужные порты для Kubernetes придется вспомнить все свои знания по firewall-cmd или просто закрыть глаза и нажимать Enter до победного конца.

Если у вас нет времени возиться с портами – можно просто выключить firewalld командой systemctl stop firewalld… Но предупреждаю сразу: так делают только отчаянные или те, кто хочет почувствовать вкус хаоса.

Настройка переадресации IPv4 и загрузка модулей overlay и br_netfilter напоминает попытки собрать мебель из IKEA без инструкции. Всё вроде есть под рукой, но пару деталей нужно поискать под диваном (или в sysctl.d).

Важно проверить lsmod | grep br_netfilter — чтобы убедиться, что модули действительно загружены; иначе вся сеть будет работать “как хочет”.

Для фанатов контейнеризации выбираем CRI-O вместо Docker или containerd – это как выбирать между разными сортами пельменей: все вкусные по-своему, но CRI-O сейчас модный тренд среди Kubernetes-гурманов.

This entry was posted in Linux и серверы. Bookmark the permalink.