Гид по технологиям

Установка MicroK8s на Ubuntu: локальный Kubernetes шаг за шагом

• 6 min read • DevOps • Обновлено 27 Nov 2025
Установка MicroK8s на Ubuntu — локальный Kubernetes
Установка MicroK8s на Ubuntu — локальный Kubernetes

Корабль с грузовыми контейнерами и меткой Kubernetes

DevOps сильно изменил процесс разработки и доставки ПО. Одной из ключевых технологий этой трансформации является Kubernetes. В этой статье подробно рассмотрим, как установить локальный экземпляр Kubernetes на Ubuntu с помощью MicroK8s. С такой конфигурацией вы сможете безопасно и надёжно запускать контейнерные приложения на локальной машине, в IoT-устройстве или на edge‑узле.

Зачем использовать MicroK8s?

Kubernetes — это платформа с открытым исходным кодом, которая автоматизирует развёртывание, масштабирование и управление контейнеризированными приложениями. MicroK8s — это «микро» версия Kubernetes: компактная, сертифицированная CNCF upstream-реализация, оптимизированная для низкого потребления ресурсов.

Коротко о преимуществах MicroK8s:

  • Лёгкая установка и минимальные зависимости (snap).
  • Подходит для ноутбуков, серверов разработки, IoT и edge.
  • Работает на x86 и ARM.
  • Совместима с инструментами Kubernetes (kubectl, Helm и др.).

Когда MicroK8s — хорошая идея: локальная разработка, тестирование CI, демонстрации и обучение Kubernetes. Когда не подходит: если нужен отказоустойчивый кластер в production с многонодовой конфигурацией и расширенными SLA — там чаще используют Charmed Kubernetes, managed Kubernetes в облаке или kOps/eks/gke.

Требования и подготовка

Кратко:

  • Ubuntu (обычно 18.04, 20.04, 22.04 и новее).
  • Доступ к snap (обычно установлен в Ubuntu по умолчанию).
  • Права sudo для установки и первичной настройки.

Важные понятия в одну строку:

  • Pod — минимальная единица запуска в Kubernetes: один или несколько контейнеров с общей сетью и томами.
  • Addon — дополнительный компонент MicroK8s (DNS, dashboard, ingress и т. п.).
  • NodePort — тип сервиса, который открывает порт на узле для доступа к подам.

Шаг 1: Установка MicroK8s на Ubuntu

Установить MicroK8s проще всего через snap:

sudo snap install microk8s --classic

Альтернатива: установить через GUI — открыть Ubuntu Software Center, найти «microk8s» и нажать «Install».

Установка MicroK8s через Ubuntu Software Center

Важно: snap-пакеты обновляются автоматически. Если вы хотите фиксировать версию, изучите параметры snap refresh.

Шаг 2: Настройка брандмауэра для MicroK8s

MicroK8s создаёт под‑сеть для контейнеров (CNI). Чтобы обеспечить связь между подами и доступ в интернет, настройте UFW так, чтобы он разрешал входящие и исходящие соединения по интерфейсу cni0, а также разрешал маршрутизируемый трафик:

sudo ufw allow in on cni0 && sudo ufw allow out on cni0
sudo ufw default allow routed

Важно: эти правила применимы для UFW. Если вы используете другой брандмауэр (firewalld, nftables, managed cloud firewall), откройте аналогичные правила для интерфейса контейнерной сети и для портов, которые будут использоваться (NodePort, Ingress).

Примечание: если вы работаете в корпоративной сети, согласуйте изменения с сетевой командой.

Шаг 3: Добавление пользователя в группу microk8s

По умолчанию команды microk8s требуют sudo. Для удобства работы в локальной среде добавьте пользователя в группу microk8s и владейте каталогом kube:

sudo usermod -aG microk8s $USER
sudo chown -f -R $USER ~/.kube
newgrp microk8s

После этого многие microk8s-команды можно выполнять без sudo. На некоторых системах нужно выйти и войти в сеанс, чтобы изменения группы вступили в силу.

Шаг 4: Включение важных аддонов

MicroK8s идёт с минимальным набором, чтобы сохранить малый размер. Часто полезно включить базовые аддоны:

microk8s enable dns dashboard storage

Пояснения:

  • dns — требуется многим приложениям внутри кластера.
  • dashboard — графический веб-интерфейс управления.
  • storage — простая локальная система хранения (dynamic volume provisioning).

Посмотреть статус и список доступных аддонов:

microk8s status --wait-ready

Шаг 5: Просмотр и доступ к дашборду MicroK8s

Получите список всех ресурсов и найдите сервис kubernetes-dashboard:

microk8s kubectl get all --all-namespaces

Вывод с перечнем namespace в MicroK8s

В выводе вы увидите IP пода дашборда (например, 10.152.183.35) и порт 443. Этот IP может отличаться — он генерируется внутри кластера.

Откройте в браузере URL с IP и портом, например https://10.152.183.35:443. Для входа потребуется токен. Получить токен можно так:

token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s kubectl -n kube-system describe secret $token

Аутентификация в Kubernetes Dashboard

Дашборд даёт обзор workloads, сервисов, конфигураций и позволяет управлять ресурсами в удобном интерфейсе.

Kubernetes Dashboard в Ubuntu Linux

Шаг 6: Создание сервиса в MicroK8s

Развернём простое приложение «microbot» и откроем его через NodePort.

Создаём деплоймент с одним контейнером:

microk8s kubectl create deployment microbot --image=dontrebootme/microbot:v1

Масштабируем до двух реплик:

microk8s kubectl scale deployment microbot --replicas=2

Создаём сервис типа NodePort, чтобы открыть доступ извне:

microk8s kubectl expose deployment microbot --type=NodePort --port=80 --name=microbot-service

Проверим все ресурсы:

microk8s kubectl get all --all-namespaces

Вывод команд, показывающий сервисы MicroK8s

В выводе будет поле порта NodePort (например, 30353). Тогда в браузере на локальной машине приложение доступно по адресу:

http://localhost:30353

Сервис microbot в браузере

Troubleshooting — частые проблемы и решения

  • Дашборд не открывается: проверьте, что pod kubernetes-dashboard запущен (microk8s kubectl get pods -n kube-system) и что токен корректен. Проверьте правила UFW и SELinux (если активен).
  • Не получается получить токен: убедитесь, что secret с default-token существует в namespace kube-system, и что у вас есть права для его просмотра (возможно, вы не в группе microk8s).
  • Поды остаются в состоянии Pending: проверьте storage-class и доступность ресурсов CPU/RAM; для ограниченных устройств может потребоваться уменьшить запросы контейнеров.

Безопасность и hardening (рекомендации)

  • Минимизируйте права: избегайте запуска подов с привилегиями root без необходимости.
  • Используйте NetworkPolicy для ограничения трафика между подами.
  • Регулярно обновляйте MicroK8s через snap и следите за совместимостью версий.
  • Включайте аддоны только когда они нужны (ingress, registry, observability).
  • Разрешайте доступ к дашборду только из доверенной сети или через kubectl proxy.

Важно: дашборд по умолчанию требует токен; не оставляйте публичный доступ к админским интерфейсам.

Альтернативы MicroK8s и когда их выбирать

  • minikube — популярный вариант для локальной разработки; запускает виртуальную машину и подходит, если нужна среда, закрытая от хоста.
  • kind (Kubernetes IN Docker) — запускает кластер в Docker-контейнерах; хорош для CI и тестов, где важна чистая среда.
  • k3s — облегчённый дистрибутив RKE/Lightweight Kubernetes, ориентированный на edge и ARM; отличается от MicroK8s моделью управления и встроенными компонентами.

Выбор по сценарию:

  • Для простоты установки и нативной работы на Ubuntu — MicroK8s.
  • Для CI, где уже используется Docker — kind.
  • Для edge/ARM с минимальными зависимостями — k3s.

Чеклист перед деплоем в production-подобную среду

  • Резервные копии etcd (если используете многонодовой кластер).
  • Настроен мониторинг (metrics-server, Prometheus).
  • Включены NetworkPolicy и RBAC.
  • Настроены ingress-контроллеры и TLS.
  • Проверены сценарии обновления и отката.

Шпаргалка команд (cheat sheet)

# Установить
sudo snap install microk8s --classic

# Проверить статус
microk8s status --wait-ready

# Включить аддоны
microk8s enable dns dashboard storage ingress registry metrics-server

# Просмотреть все ресурсы
microk8s kubectl get all --all-namespaces

# Получить логи pod
microk8s kubectl logs  -n 

# Остановить и запустить microk8s
microk8s stop
microk8s start

# Сброс (удаляет состояние!)
microk8s reset

Критерии приёмки

  • MicroK8s устанавливается без ошибок на целевой версии Ubuntu.
  • DNS аддон работает (pod может резолвить service имена).
  • Dashboard доступен и авторизует пользователя токеном.
  • Приложение разворачивается и доступно через NodePort или Ingress.

Короткий глоссарий

  • Pod — базовый блок запуска в Kubernetes.
  • NodePort — сервис, который открывает порт на узле для внешнего доступа.
  • Addon — встроенный модуль MicroK8s (dns, dashboard, storage и т. п.).

Примеры когда MicroK8s не подойдёт

  • Требуется многокластерная production‑инфраструктура с высокой доступностью и автоматическим failover.
  • Есть требования к интеграции с корпоративной сетью и сложным Storage (SAN, Ceph) без адаптации.

Резюме

MicroK8s — быстрый и удобный способ получить полноценный Kubernetes на локальной Ubuntu‑машине. Для большинства задач разработки и тестирования он обеспечивает необходимый функционал при минимальных усилиях. Если вы готовите приложение к продакшену, дополните MicroK8s практиками безопасности, мониторинга и планом обновления.

FAQ

  • Как получить токен для дашборда? Используйте команды, приведённые в разделе по дашборду (token=$(…) и describe secret).
  • Можно ли запускать MicroK8s на ARM? Да, MicroK8s поддерживает ARM‑архитектуры.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро