Домашний Kubernetes-кластер своими руками
Этот сайт — сборник пошаговых инструкций для тех, кто хочет поднять настоящий Kubernetes-кластер у себя дома: на б/у сервере, мини-ПК или даже старом компьютере. Без воды, без маркетинга — только практика, проверенные команды и честные предупреждения о подводных камнях.
Что такое домашний Kubernetes-кластер
Kubernetes (сокращённо k8s) — система оркестровки контейнеров. Говоря простым языком, это «диспетчер», который запускает ваши приложения в контейнерах, следит, чтобы они не падали, перезапускает их при сбоях, распределяет нагрузку между машинами и умеет обновлять приложения без простоя.
Домашний кластер — это тот же Kubernetes, только развёрнутый не в облаке у провайдера, а на вашем собственном железе в квартире или доме. Обычно это один или несколько компьютеров, объединённые локальной сетью, на которых круглосуточно работают ваши сервисы.
В кластере есть два типа узлов:
- Control-plane (управляющий узел) — «мозг» кластера. Здесь работают API-сервер, планировщик, база etcd с состоянием кластера. Он не запускает пользовательские приложения (по умолчанию), а управляет остальными.
- Worker (рабочий узел) — «мускулы». Именно здесь в контейнерах (подах) крутятся ваши приложения: медиасервер, файловое хранилище, умный дом и что угодно ещё.
Для дома вполне достаточно одного узла, который совмещает обе роли, — так работает, например, k3s по умолчанию. Но классика жанра — один управляющий узел и один-два рабочих.
Зачем это нужно
Честный ответ: строгой необходимости нет. Всё, что можно запустить в домашнем Kubernetes, можно запустить и просто через Docker. Но домашний кластер даёт три реальных преимущества:
- Обучение на живом примере. Kubernetes — индустриальный стандарт, и лучший способ его освоить — ежедневно с ним жить. Домашний кластер прощает ошибки: сломали — починили, никто не пострадал.
- Порядок в домашних сервисах. Все приложения описаны декларативными манифестами, обновляются одинаково, переживают перезагрузку сервера и аккуратно складывают данные в понятные тома.
- Независимость от облаков. Ваши файлы, медиатека, заметки и пароли живут на вашем железе, под вашим контролем, без подписок и лимитов.
Что понадобится
Минимальный набор для старта выглядит так:
- Железо. Один компьютер с 4 потоками процессора, 4 ГБ ОЗУ и 40 ГБ диска — нижний порог. Комфортно — от 4 ядер, 16 ГБ ОЗУ и SSD. Подробный разбор вариантов — на странице «Железо».
- Операционная система. Debian 12 или Ubuntu Server 24.04 LTS — обе отлично подходят. Инструкции на сайте дают команды для обеих. См. «Подготовка».
- Сеть. Желательно подключение сервера кабелем к роутеру и возможность назначить статический IP-адрес. Wi-Fi тоже работает, но кабель надёжнее.
- Время. Первый запуск по этим инструкциям занимает 2–4 часа с неспешным чтением пояснений.
Два пути установки
В инструкциях мы используем два способа развёртывания:
| Путь | Что это | Кому подходит |
|---|---|---|
| k3s | Облегчённый дистрибутив Kubernetes от Rancher. Одна команда установки, встроенные сетевой плагин, балансировщик и provisioner дисков. Работает на слабом железе. | Новичкам — рекомендуем начать отсюда. Минимум настроек, быстрый результат. |
| kubeadm | Классический инструмент установки «ванильного» Kubernetes. Всё собирается вручную: containerd, CNI, control-plane. | Тем, кто хочет глубже понять устройство кластера или готовится к сертификациям CKA/CKAD. |
Обе инструкции приведены на странице «Установка», причём путь k3s разобран первым и подробно, а kubeadm — как «второй путь для желающих копнуть глубже».
Карта инструкций
Сайт построен как маршрут: страницы идут в порядке, удобном для чтения от начала до конца. Но каждая инструкция самодостаточна — можно переходить сразу к нужной.
1. Железо
Выбор б/у сервера на Xeon E5, мини-ПК, старый компьютер или одноплатники. На что смотреть при покупке и чего избегать.
2. Требования
Системные требования для control-plane и worker-узлов: ЦП, память, диск, сеть. Сравнение требований k3s и kubeadm.
3. Подготовка
Установка Debian 12 / Ubuntu Server, SSH-ключи, статический IP, отключение swap, нужные пакеты.
4. Установка
Простой путь k3s одной командой и классический kubeadm с containerd. Проверка, что кластер жив.
5. Сеть
CNI, flannel и Calico, NodePort и MetalLB, проброс портов на роутере, Ingress на примере Traefik и nginx.
6. Хранение
PV и PVC простыми словами, local-path-provisioner, NFS на домашнем NAS, примеры манифестов.
7. Приложения
Первый Deployment с nginx, Kubernetes Dashboard с токеном доступа, сборка и деплой собственного приложения.
8. Примеры
Что обычно запускают дома: Jellyfin, Nextcloud, Home Assistant, Gitea. Идеи и ключевые моменты установки.
9. Советы
Узел NotReady, нехватка памяти, переполнение диска и etcd, резервное копирование, шпаргалка по kubectl.
Как устроен кластер: коротко и с картинками
Прежде чем идти дальше, полезно запомнить четыре базовые сущности. Они будут встречаться в каждой инструкции.
Кластер и узлы
Control-plane принимает ваши команды через kubectl, решает, на каком узле запускать приложение, и хранит всё состояние в базе etcd. Рабочие узлы получают задания и выполняют их, докладывая статус обратно.
Под — минимальная единица
Приложение в Kubernetes не запускается «само по себе». Оно упаковывается в под (pod) — коробку с одним или несколькими контейнерами, у которой есть свой IP-адрес внутри кластера и, при необходимости, присоединённые диски (тома). Под смертен: если он падает, контроллер создаёт новый. Поэтому данные хранят отдельно — на постоянных томах.
Сеть
IP-адреса подов меняются при каждом пересоздании, поэтому обращаться к ним напрямую нельзя. Поверх подов создаётся Service — стабильная точка входа с постоянным именем. А чтобы впустить трафик из домашней сети или интернета, используются NodePort, LoadBalancer (MetalLB) и Ingress. Подробно — на странице «Сеть».
etcd — память кластера
Всё, что вы создаёте в кластере, записывается в базу etcd на управляющем узле. Потеряете etcd без бэкапа — потеряете кластер. Как делать снапшоты etcd в k3s, рассказано на странице «Советы».
С чего начать прямо сейчас
Шаг 1. Определитесь с железом
Если сервер ещё не куплен — прочитайте разбор вариантов. Если есть любой компьютер с 4 ГБ ОЗУ — можете начинать на нём, не откладывая.
Шаг 2. Проверьте требования
Сверьте своё железо с таблицей системных требований, чтобы не наступить на грабли ещё до установки.
Шаг 3. Подготовьте систему
Установите Debian 12 или Ubuntu Server по инструкции «Подготовка» — это займёт около часа вместе с настройкой SSH и статического IP.
Шаг 4. Установите k3s
Одна команда из инструкции «Установка» — и через пару минут у вас работающий кластер.
Шаг 5. Запустите первое приложение
Пройдите страницу «Приложения»: поднимете nginx, поставите Dashboard и задеплоите собственный контейнер.
Что здесь намеренно не рассматривается
Чтобы маршрут оставался проходимым для новичка, за рамки сайта вынесены темы, к которым стоит приходить позже, на живом кластере:
- GitOps (Flux, ArgoCD) — когда манифесты поедут в Gitea, самое время научить кластер синхронизироваться с репозиторием самостоятельно;
- Распределённые хранилища (Longhorn, Ceph) — интересны, но тяжелы для первого кластера; NFS покрывает домашние нужды;
- Service Mesh (Istio, Linkerd) — избыточно для дома;
- Высокодоступный control-plane из трёх узлов — годы домашней эксплуатации показывают, что один управляющий узел с бэкапами etcd практичнее.
Каждая из этих тем — отличный «сезон два» после того, как базовый кластер по этим инструкциям проживёт пару месяцев.
Что нужно знать до старта
Чтобы инструкции читались легко, проверьте себя по короткому списку. Если какой-то пункт незнаком — это не стена, а подсказка, что погуглить на полчаса перед стартом:
- Терминал Linux. Вы умеете подключаться по SSH, редактировать файлы в nano, запускать команды с sudo. Все команды в инструкциях даны полностью — копируйте и выполняйте.
- Основы сети. Вы знаете, что такое IP-адрес, маска подсети и шлюз, и умеете зайти в настройки своего роутера.
- YAML. Манифесты Kubernetes пишутся на YAML — простом формате «ключ: значение» с отступами. Все манифесты на сайте готовые, но умение поправить в них имя или число пригодится с первого дня.
- Общее представление о контейнерах. Желательно, но не обязательно: контейнер — это изолированный процесс со своей файловой системой, упакованный в образ. По ходу инструкций понятие обрастёт практикой.
Как устроен маршрут по сайту
Инструкции выстроены так, чтобы каждая следующая опиралась на предыдущую. Вот логика последовательности:
| Этап | Страницы | Результат на выходе |
|---|---|---|
| Планирование | Железо, Требования | Вы точно знаете, какое железо купить или приспособить, и что оно подходит |
| Фундамент | Подготовка | Сервер с установленной ОС, статическим IP и SSH-доступом |
| Запуск | Установка | Работающий кластер, kubectl get nodes показывает Ready |
| Инфраструктура | Сеть, Хранение | Сервисы доступны из домашней сети, у приложений есть постоянные диски |
| Применение | Приложения, Примеры | В кластере крутятся первые сервисы: Dashboard, медиасервер, облако |
| Эксплуатация | Советы | Бэкапы настроены, типовые поломки не пугают, шпаргалка под рукой |
Опытные читатели могут перескакивать: если Linux уже установлен и настроен, начинайте сразу с установки k3s. Если кластер уже есть — страницы про сеть и хранилище читаются независимо.
Какие навыки вы получите
Пройдя весь маршрут, вы не просто получите работающий сервер — вы освоите полный цикл работы с Kubernetes на уровне уверенного пользователя:
- Администрирование Linux — установка Debian/Ubuntu, SSH-ключи, статическая сеть, systemd, журналы (страница «Подготовка»);
- Развёртывание кластера — k3s и kubeadm, добавление узлов, роли control-plane и worker («Установка»);
- Сетевая модель k8s — Service всех типов, CNI, MetalLB, Ingress, DNS («Сеть»);
- Управление данными — PV/PVC/StorageClass, NFS, права доступа на томах («Хранение»);
- Деплой приложений — Deployment, rolling update, откаты, ConfigMap/Secret, сборка своих образов («Приложения»);
- Эксплуатация — диагностика, бэкапы etcd, обновления, ограничение ресурсов («Советы»).
Этого набора достаточно, чтобы уверенно чувствовать себя в любом разговоре про Kubernetes — и чтобы домашний сервер приносил пользу каждый день, а не пылился как недоделанный проект.
Частые вопросы новичков
Это сложно?
Честно — первое знакомство с Kubernetes ощущается как переезд в новую квартиру: непривычно, много коробок. Но инструкции на сайте рассчитаны именно на новичка: каждая команда сопровождается пояснением, что она делает и что должно получиться. Если вы умеете устанавливать Linux и работать в терминале — справитесь.
Сколько электричества будет съедать кластер?
Зависит от железа. Мини-ПК потребляет в простое около 10 Вт — это сравнимо с роутером, который и так работает круглосуточно. Самосборный сервер на Xeon — 60–90 Вт. В денежном выражении при среднем тарифе это разница в несколько сотен рублей в месяц. Подробные цифры — на странице «Железо».
А если у меня всего один компьютер?
Одного узла достаточно — так работает большинство домашних кластеров. k3s по умолчанию совмещает роли управляющего и рабочего узла на одной машине. Многоузловой кластер нужен для изучения отказоустойчивости и миграции подов — это можно добавить позже, когда появится второй компьютер.
Нужен ли белый IP-адрес?
Для работы внутри домашней сети — нет. Для доступа к сервисам из интернета (например, к своему облаку с телефона) — либо белый IP от провайдера, либо туннель. Подробности разобраны на странице «Сеть» в разделе про проброс портов.
Чем k3s отличается от «настоящего» Kubernetes?
k3s — это и есть настоящий Kubernetes, сертифицированный CNCF. Из него убрали редко используемые компоненты (устаревшие драйверы облаков, альфа-функции) и добавили всё необходимое «в комплекте». Все знания, полученные на k3s, полностью переносятся на любой другой дистрибутив: манифесты, kubectl, концепции — идентичны.
А Docker Swarm, Nomad, просто docker-compose?
Для дома всё это работает. Но у Kubernetes решающее преимущество — экосистема и переносимость навыков: helm-чарты существуют практически для любого сервиса, а опыт k8s востребован профессионально. docker-compose прекрасен для одной машины, но не умеет ни самовосстановления кластера, ни декларативного управления несколькими узлами. Начав с k8s дома, вы учите инструмент, который встретите и на работе.
Опасно ли выставлять сервисы в интернет?
При грамотном подходе — приемлемо: HTTPS с сертификатом Let's Encrypt, актуальные версии приложений, сильные пароли, минимум открытых портов (только 80/443 через Ingress). При неграмотном — да: голый HTTP с паролем «admin123» находят сканеры за день. На странице «Сеть» разобрана безопасная схема, а страница «Советы» поможет держать кластер обновлённым.
Сколько времени всё это займёт?
По опыту читателей подобных инструкций: установка ОС и подготовка — около часа; установка k3s — 10 минут; первое приложение — ещё час с чтением пояснений. Итого работающий кластер за один вечер. А дальше начинается самое интересное — наполнение его сервисами под свои задачи, и это занятие без финишной ленты.
Чем этот сайт отличается от официальной документации
Официальная документация Kubernetes (kubernetes.io) — исчерпывающая, но написана для инженеров и покрывает все возможные сценарии, включая кластеры на тысячи узлов. Новичку в ней легко потеряться: пять способов установки, десять сетевых плагинов, сотни опций.
Здесь другой подход: один проверенный путь от покупки железа до работающих сервисов, без ветвлений «а если у вас облако AWS». Все команды реальные и проверяемые, операционная система — Debian 12 или Ubuntu Server, дистрибутив — k3s (с классическим kubeadm как вторым путём). Там, где у темы есть типовые грабли, стоят предупреждения — они собраны из практики, а не из теории.
Философия домашнего кластера
Три принципа, которые стоит держать в голове с первого дня:
- Сначала работает — потом красиво. Поднимите сервис простым способом, пусть поработает неделю, и только потом добавляйте HTTPS, мониторинг и GitOps. Излишняя сложность на старте — главная причина брошенных домашних лабораторий.
- Бэкап до, а не после. Снапшот etcd и копия манифестов делаются перед любым изменением кластера. Пять минут на бэкап против вечера на восстановление — хороший обмен.
- Записывайте, что сделали. Манифесты в git, заметки о нестандартных решениях, схема сети. Через полгода вы скажете себе спасибо — домашний сервер обслуживается «раз в месяц по памяти», и память подводит.