# k3s и лёгкие дистрибутивы

> Облегчённые сборки Kubernetes — k3s, k0s, MicroK8s, kind, minikube — для небольших серверов, edge-устройств, разработки и тестов.

Источник: https://llmdocs.ru/wiki/k3s/ · обновлено 2026-11-09 · лицензия CC BY-SA 4.0

- **k3s**: Rancher (SUSE), 2019, проект CNCF
- **Размер k3s**: один бинарник менее 100 МБ
- **Минимум памяти**: около 512 МБ на сервер k3s
- **Хранилище состояния**: SQLite, etcd, MySQL, PostgreSQL (kine)
- **Для разработки**: kind, minikube, k3d
- **Для edge и продакшена**: k3s, k0s, MicroK8s, Talos
- **Сертификация**: CNCF Certified Kubernetes
**Лёгкие дистрибутивы Kubernetes** — сборки [Kubernetes](https://llmdocs.ru/wiki/kubernetes.md), упрощённые для установки и требующие меньше ресурсов, чем «классический» кластер, разворачиваемый через kubeadm. Самый известный из них — **k3s**: полноценный сертифицированный Kubernetes в одном исполняемом файле, который ставится одной командой и работает даже на Raspberry Pi. Такие дистрибутивы используют на небольших VPS, в домашних лабораториях, на edge-устройствах и для локальной разработки и тестов в [CI/CD](https://llmdocs.ru/wiki/ci-cd.md).

## Зачем нужны

Стандартный кластер состоит из множества компонентов: API-сервер, etcd, планировщик, менеджер контроллеров, kubelet, kube-proxy, плагин сети, DNS, ingress-контроллер. Каждый ставится и обновляется отдельно, а управляющая плоскость с etcd желает 2+ ГБ памяти. Лёгкие дистрибутивы собирают всё это в готовый комплект с разумными значениями по умолчанию, чтобы кластер можно было получить за минуту.

## k3s

k3s создала компания Rancher Labs в 2019 году; название — игра с «k8s»: «вдвое меньше букв».[1] С 2020 года проект находится в CNCF. Особенности:[2]

- **Один бинарник** содержит все компоненты управляющей плоскости, kubelet и containerd.
- Вместо etcd по умолчанию используется **SQLite** через прослойку kine; для отказоустойчивых кластеров — встроенный etcd или внешняя [PostgreSQL](https://llmdocs.ru/wiki/postgresql.md)/MySQL.
- В комплекте: сеть Flannel (см. [Сетевые плагины (CNI)](https://llmdocs.ru/wiki/cni.md)), CoreDNS, ingress-контроллер Traefik, балансировщик ServiceLB, `local-path-provisioner` для [томов](https://llmdocs.ru/wiki/persistentvolume.md) и контроллер установки [Helm](https://llmdocs.ru/wiki/helm.md)-чартов.
- Удалены устаревшие и облачно-специфичные части Kubernetes.

Установка сервера и подключение рабочего узла:

```bash
curl -sfL https://get.k3s.io | sh -
sudo k3s kubectl get nodes

# на рабочем узле: адрес сервера и токен из /var/lib/rancher/k3s/server/node-token
curl -sfL https://get.k3s.io | K3S_URL=https://server:6443 K3S_TOKEN=... sh -
```

Конфигурация для [kubectl](https://llmdocs.ru/wiki/kubectl.md) лежит в `/etc/rancher/k3s/k3s.yaml`. Встроенные компоненты можно отключить флагами, например `--disable traefik`, если вместо Traefik нужен другой ingress. Служба k3s управляется через [systemd](https://llmdocs.ru/wiki/systemd.md).

## Сравнение

| Дистрибутив | Для чего | Особенности |
|---|---|---|
| **k3s** | маленькие серверы, edge, домашние кластеры | один бинарник, SQLite, всё в комплекте |
| **k0s** (Mirantis) | продакшен с минимумом зависимостей | один бинарник, без привязки к ОС, ванильные компоненты[5] |
| **MicroK8s** (Canonical) | Ubuntu, рабочие станции, edge | ставится через snap, дополнения включаются командой `microk8s enable`[6] |
| **kind** | тесты и CI | узлы кластера — контейнеры [Docker](https://llmdocs.ru/wiki/docker.md)[3] |
| **minikube** | обучение и локальная разработка | ВМ или контейнер, дашборд и дополнения[4] |
| **k3d** | локальная разработка | k3s внутри Docker, кластер за секунды |
| **Talos Linux** | продакшен на «железе» | неизменяемая ОС только для Kubernetes, управление через API |

## Разработка и CI

**kind** (*Kubernetes IN Docker*) создан для тестирования самого Kubernetes: каждый узел — контейнер, кластер из нескольких узлов поднимается за полминуты и удаляется без следа. Это стандартный выбор для интеграционных тестов в [GitHub Actions](https://llmdocs.ru/wiki/github-actions.md) и проверки [операторов](https://llmdocs.ru/wiki/kubernetes-operator.md).

```bash
kind create cluster --name dev
kind load docker-image myapp:dev --name dev   # без реестра
kubectl cluster-info --context kind-dev
kind delete cluster --name dev
```

**minikube** удобнее для обучения: дашборд (`minikube dashboard`), туннель для сервисов типа LoadBalancer, набор дополнений. **k3d** даёт то же, что kind, но на базе k3s и с встроенным локальным [реестром](https://llmdocs.ru/wiki/container-registry.md).

## Когда выбирать

- **Один сервер или несколько небольших** — k3s: полноценный Kubernetes с минимальными накладными расходами. Впрочем, для одного сервера с парой сервисов часто проще [Docker Compose](https://llmdocs.ru/wiki/docker-compose.md).
- **Edge и IoT** — k3s или MicroK8s, поддерживают ARM.
- **Тесты в CI** — kind или k3d.
- **Обучение** — minikube или kind.
- **Крупный продакшен** — управляемые кластеры облаков (EKS, GKE, Managed Kubernetes в российских облаках) или kubeadm/Talos; впрочем, k3s с внешней базой данных тоже применяют в продакшене.

Все перечисленные дистрибутивы проходят тесты соответствия CNCF, поэтому манифесты и Helm-чарты переносятся между ними без изменений; различаются лишь встроенные компоненты — ingress, хранилище и сеть.

## См. также

- [Kubernetes](https://llmdocs.ru/wiki/kubernetes.md)
- [kubectl](https://llmdocs.ru/wiki/kubectl.md)
- [Docker Compose](https://llmdocs.ru/wiki/docker-compose.md)
- [Сетевые плагины (CNI)](https://llmdocs.ru/wiki/cni.md)

## Источники

1. [k3s Documentation](https://docs.k3s.io/)
2. [k3s — Architecture](https://docs.k3s.io/architecture)
3. [kind — Kubernetes IN Docker](https://kind.sigs.k8s.io/)
4. [minikube documentation](https://minikube.sigs.k8s.io/docs/)
5. [k0s Documentation](https://docs.k0sproject.io/)
6. [MicroK8s Documentation](https://microk8s.io/docs)
