MicroK8s — лёгкий Kubernetes для разработки и edge | Глоссарий FREEHOSTING

MicroK8s

MicroK8s
MicroK8s — MicroK8s — облегчённый дистрибутив Kubernetes от Canonical, устанавливаемый одной командой через snap. Подходит для локальной разработки, IoT-устройств и небольших production-кластеров без сложной настройки.

Определение простыми словами

MicroK8s — это минималистичный дистрибутив Kubernetes, разработанный компанией Canonical (создатели Ubuntu). Он устанавливается как один snap-пакет и разворачивает полноценный кластер Kubernetes буквально за 2-3 минуты. Внутри уже упакованы: API-сервер, etcd, kubelet, kube-proxy и набор аддонов (DNS, ingress, dashboard, Prometheus и другие) — всё активируется одной командой.

В отличие от «большого» Kubernetes, MicroK8s не требует отдельной настройки kubeadm, внешнего etcd или балансировщика нагрузки для старта. Это делает его идеальным выбором для CI/CD-пайплайнов, edge-устройств на ARM, разработческих ноутбуков и небольших production-нод с 1-3 серверами.

Сравнение

Дистрибутив Минимум RAM Установка Мультинода Особенности
MicroK8s 540 МБ snap install microk8s Да (microk8s add-node) Snap-изоляция, аддоны, Canonical-поддержка
K3s 512 МБ curl + bash-скрипт Да (агент/сервер) Один бинарник, SQLite вместо etcd, популярен на ARM
Minikube 2 ГБ Отдельный бинарник Нет (только локально) Виртуализация или Docker-драйвер, только dev-среда
K0s 500 МБ curl + bash-скрипт Да Нет зависимостей ОС, подходит для immutable-систем

Кейсы использования

  • Локальная разработка: разработчик разворачивает кластер на ноутбуке с Ubuntu/Windows WSL2 за 3 минуты без дополнительных инструментов.
  • CI/CD-пайплайны: в GitHub Actions или GitLab Runner MicroK8s запускается как сервис и проводит e2e-тесты Helm-чартов прямо в pipeline.
  • Edge и IoT: Canonical официально поддерживает MicroK8s на Raspberry Pi 4 (ARM64), что позволяет запускать микросервисы на edge-узлах.
  • Небольшие production-кластеры: 3-нодный кластер с HA etcd разворачивается без kubeadm и внешних зависимостей — достаточно выполнить microk8s add-node на каждом сервере.
  • Обучение Kubernetes: полный API K8s без упрощений, в отличие от Minikube, где часть функций эмулируется.

Негативный пример: MicroK8s не подходит для крупных production-кластеров (50+ нод) с требованиями к кастомной сетевой плоскости (Cilium с eBPF в полном режиме) и сложными политиками обновлений — здесь лучше использовать kubeadm с managed etcd или OpenShift.

Технические детали

MicroK8s использует containerd в качестве CRI и поставляет собственный kubectl, kubeconfig и cni-плагины в изолированном snap-окружении. Все файлы хранятся в /var/snap/microk8s/.

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

# Добавить пользователя в группу
sudo usermod -aG microk8s $USER
newgrp microk8s

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

# Включить базовые аддоны
microk8s enable dns ingress metrics-server

# Получить kubeconfig
microk8s config > ~/.kube/config

# Запустить тестовый деплой
microk8s kubectl create deployment nginx --image=nginx
microk8s kubectl expose deployment nginx --port=80 --type=NodePort

# Добавить ноду в кластер (выполнить на master)
microk8s add-node
# На worker-ноде выполнить команду join, выданную выше

# Включить Helm 3
microk8s enable helm3
microk8s helm3 repo add stable https://charts.helm.sh/stable

Для сброса кластера до чистого состояния используется microk8s reset — удаляет все workload’ы, но сохраняет конфигурацию аддонов. Полное удаление: sudo snap remove microk8s.

Частые вопросы

Чем MicroK8s отличается от обычного Kubernetes?

MicroK8s — это полноценный Kubernetes, упакованный в snap-пакет с предустановленными компонентами. Отличие в простоте установки и изоляции: все бинарники и конфиги хранятся в /var/snap/microk8s/, не затрагивая систему. API и поведение идентичны upstream Kubernetes.

Можно ли использовать MicroK8s в production?

Да, при условии HA-настройки из 3+ нод с распределённым etcd. Canonical официально поддерживает production-использование и предлагает коммерческую поддержку через Ubuntu Pro. Для кластеров до 10 нод это жизнеспособный вариант.

Работает ли MicroK8s на ARM-процессорах?

Да, поддерживаются архитектуры amd64, arm64 и armhf. MicroK8s официально тестируется на Raspberry Pi 4 и используется в IoT-проектах на базе Ubuntu Core.

Как подключить внешний kubectl к MicroK8s?

Выполните microk8s config > ~/.kube/config на сервере, скопируйте файл на локальную машину и используйте стандартный kubectl. Либо установите алиас: alias kubectl='microk8s kubectl'.