Введение ¶
Частенько бывает, что нужен Kubernetes под рукой для быстрого запуска чего-то.
- Отладить самописный Helm чарт
- Спросить что-то у
kubectl explain
- Проверить какие-то настройки
Начинаешь искать какой-нибудь кластер на первом попавшемся проекте, что не есть хорошо, потому что можно сломать что-то ненароком. Неудобно, нужно что-то делать. Оказывается, есть много разных легковесных и быстрых установщиков Kubernetes. Это может и не все, но те которые я либо пробовал, либо мимо проходил. Все они работают немного по-разному.
- Minikube - один из старейших, так сказать. Столкнулись с тем, что стандартная инсталяция kube-prometheus-stack на нём просто не завелась, а на следующем - с ходу.
- k3s - один из трёх движков от Rancher. Отличная вещь, использовал и использую на проде небольших проектов. Так же, у меня два личных кластера именно на k3s, но он тоже не ванильный, всё собрано в один бинарь. Это и хорошо, и плохо. Очень легковесный и легко устанавливается, но нарвался на то, что он ломал мне Wireguard VPN своими правилами IPTables. Пришлось поменять Wireguard FwMark на
0x8000
и всё заработало. - rke - ещё один из трёх движков. Первый из движков от Rancher. Очень классный, а особенно тем, что под него есть Terraform Module - кайф. Уже более похож на ванильную инсталяцию.
- rke2 - rke + k3s. Тут всё собрано в один бинарь, но apiserver, scheduler etc. всё ещё видны как отдельные поды. Пробовал его, жаль, что нет поддержки из Terraform как у rke. Не понравился, на практике оказался менее стабильным чем k3s, или у меня просто руки кривые.
- Microk8s - от Canonical, не пробовал.
- k0s - то же самое, как по мне, что k3s, только сообщество меньше и документация хуже, а так - хорош.
- kind - гвоздь программы сегодня. Про него поподробнее.
kind ¶
Почему хочу рассказать о нём. Это самый ванильный из всех способ для получения Kubernetes локально. У него масса плюсов.
- Есть возможность подкинуть конфиг
- Создаёт Kubernetes в Docker
- Можно создать больше одного узла!
- Под коробкой использует ванильный kubeadm!
- Все конфиги, пути и форматы - стандартный kubeadm!
- Он не лезет в iptables на хосте
Из минусов.
- Control-plane ест в состоянии простоя 900 MiB RAM с ходу
- Нужно выбрасывать порты с узлов на хост
Вот пример конфига kind
|
|
То есть, можно на одном компьютере, поднять кучу узлов и всё в контейнерах. Конфиги и настройки все - как в официальной документации. Нужно попробовать какие-то ключи к api-server - пожалуйста, нужно отточить что-то по безопасности - легко. Мне очень понравился.