Путь в страну микросервисов может быть нелегким.
Чтобы добавить еще одну свечу к уже яркому освещению, мы воспользовались возможностью сравнить дистрибутивы k0s k3s, microk8s Kubernetes, которые продолжают вдохновлять на внедрение Kubernetes как в организациях, так и в личных проектах.
Каждый, кто увлекается изучением Kubernetes и всех вопросов микросервисов, может подтвердить, что он уже сталкивался с этими тремя названиями, и если они вызвали водоворот сомнений, то в этой статье мы попытаемся развеять этот смог.
Мы собираемся сравнить k0s, k3s и microk8s, рассмотрев, что они предлагают и о чем они вообще.
Так что выбирайте свой любимый напиток и потягивайте его, пока мы шаг за шагом скатываемся с этого холма.
Давайте сначала дадим им определение, а затем внимательно посмотрим, что у них внутри.
k0s
С главного сайта k0s – это простой, надежный и сертифицированный дистрибутив Kubernetes, который работает на любой инфраструктуре: публичных и частных облаках, локальных, граничных и гибридных.
Он на 100% с открытым исходным кодом и бесплатный.
В названии дистрибутива присутствует “ноль”, поскольку использование сведено к нулю, что позволяет любому человеку, не обладающему специальными навыками или опытом работы с Kubernetes, легко приступить к работе.
k3s
Адаптированный из Rancher, K3s – это официальный проект CNCF для песочницы, который предоставляет легкий, но мощный сертифицированный дистрибутив Kubernetes, предназначенный для производственных рабочих нагрузок в условиях ограниченных ресурсов, в удаленных местах или на устройствах IoT.
Kubernetes – это слово из 10 букв, стилизованное под K8s.
Поэтому что-то вдвое меньшее, чем Kubernetes, было бы словом из 5 букв, стилизованным под K3s.
Таким образом, 3 в названии объясняется следующим образом.
Microk8s
MicroK8s – это самый маленький, быстрый, полностью совместимый Kubernetes, который отслеживает релизы вышестоящих поставщиков и делает кластеризацию тривиальной.
MicroK8s отлично подходит для автономной разработки, создания прототипов и тестирования.
Используйте его на виртуальной машине как маленький, дешевый, надежный k8s для CI/CD.
Это также лучший Kubernetes производственного уровня для устройств.
Разрабатывайте IoT-приложения для k8s и развертывайте их в MicroK8s на своих Linux-компьютерах.
k0s, k3s, microk8s – подробная сравнительная таблица
Для удобства чтения мы решили, что для более простого сравнения подойдет таблица.
Давайте посмотрим, что они могут предложить:
Характеристика | k0s | k3s | microk8s |
Лицензирование | Полностью открытый исходный код | Полностью открытый исходный код | Полностью открытый исходный код |
Упаковка | k0s распространяется как единый бинарник с минимальными зависимостями от хост-ОС, кроме ядра хост-ОС. | Упакован как один бинарник | MicroK8s – это кластер Kubernetes, поставляемый в виде единого пакета snap. |
Версия Kubernetes | v1.20 и v1.21 | Последний выпуск обновляет Kubernetes до версии 1.22.1 | Kubernetes v1.22, v1.21 |
Выполнение контейнера | ContainerD (по умолчанию) | ContainerD (по умолчанию) | ContainerD – среда выполнения контейнеров, используемая MicroK8s |
Поддерживаемые ОС хоста | Linux (kernel v3.10 или новее) Windows Server 2019 (экспериментальный) | Ожидается, что K3s будет работать на большинстве современных систем Linux | Windows 10, Linux, macOS |
Опции панели управления | Внутренний Elastic Etcd с TLS, Внутренний SQLite, внешний PostgreSQL, внешний MySQL | sqlite3 – механизм хранения данных по умолчанию. etcd3, MySQL, Postgres также все еще доступны | MicroK8s поддерживает высокую доступность, используя Dqlite в качестве хранилища данных для состояния кластера. |
Встроенные средства безопасности | RBAC, Support OpenID Providers, Pod Security Policies, Network Policies, Micro VM Runtimes, Control Plane Isolation | Безопасность по умолчанию с разумными настройками по умолчанию для легких сред | Безопасность по умолчанию с разумными настройками по умолчанию для легких сред |
Поддерживаемые поставщики CNI | Kube-Router (по умолчанию), Calico или кастомный | K3s будет работать с flannel по умолчанию в качестве CNI, используя VXLAN в качестве бэкенда по умолчанию. Поддерживаются также пользовательские настройки | Flanneld запускается, если ha-cluster не включен. Если ha-cluster включен, вместо него запускается calico. |
Поддерживаемые архитектуры | x86-64, ARM64, ARMv7 | Последний выпуск поддерживает x86_64, ARMv7 и ARM64 | x86_64, ARMv7 и ARM64 |
Компания-основатель | Mirantis | Rancher | Canonical |
Аддоны | Минимальные дополнения | Traefik, Helm,LB | Дашборд, Ingress, DNS, и более |
Заключение
Kubernetes удалось сделать то, чего пытались достичь большинство платформ в прошлом.
Они сделали развертывание приложений максимально простым и гибким.
Есть и другие дополнительные преимущества, такие как самовосстановление, простота мониторинга, простота развертывания, сложная конфигурация, оркестрация, безопасность, развертывание в масштабе и многие другие преимущества.
k0s, k3s и microk8s пришли в полную силу, чтобы сделать развертывание Kubernetes максимально простым для каждого разработчика, желающего начать развертывание микросервисов.
Мы рекомендуем вам попробовать все три дистрибутива Kubernetes и понять, что вам более подходит.
см. также:
- ☸️ Как развернуть легкий кластер Kubernetes за 5 минут с K3s
- ☸️ Локальные Kubernetes для Linux – MiniKube или MicroK8s