Kubernetes (K8s) описывается как «портативная расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и службами, облегчающая как декларативную настройку, так и автоматизацию. Она имеет большую, быстро растущую экосистему. Услуги, поддержка и инструменты Kubernetes широко доступны. Google открыл проект Kubernetes в 2014 году».
Однако, как объясняет генеральный директор Rancher Labs Шен Лянг (Sheng Liang), «существующие дистрибутивы Kubernetes часто требуют большого объема памяти и слишком сложны для периферийных вычислительных сред», поэтому компания разработала и выпустила K3s, облегченный дистрибутив Kubernetes, предназначенный для разработчиков и операторов, ищущих способ запуска Kubernetes в x86, Armv7-A и 64-разрядных аппаратных платформах Armv8-A с ограниченными ресурсами, что часто встречается в периферийных вычислительных средах, в отличие от облака.
Rancher Labs удалось сократить площадь присутствия Kubernetes и лучше адаптировать ее к оборудованию начального уровня, выполнив четыре основных шага:
- Удаление старого и несущественного кода – функциональные возможности Alpha, все нестандартные контроллеры доступа, провайдеры облачного хранилища и драйверы хранилища по умолчанию отключены, вместо этого они разрешают пользователям добавлять любые необходимые им драйверы.
- Консолидация пакетов запущенных процессов. В целях экономии оперативной памяти процессы, которые обычно выполняются на сервере управления Kubernetes, были объединены в один процесс, включая процессы Kubelet, kubeproxy и flannel agent .
- Используя containerd вместо Docker – переключаясь на containerd и удаляя такие функции, как libnetwork, swarm, драйверы хранилища Docker и другие плагины, Rancher удалось значительно сократить объем времени выполнения.
- Внедрен SQLite в качестве дополнительного хранилища данных – Rancher добавил SQLlite в качестве дополнительного хранилища данных в K3s, чтобы предоставить легкую альтернативу etcd.
В результате получается простой в установке, легкий дистрибутив Kubernetes с двоичным файлом размером менее 40 МБ, для работы которого требуется всего 512 МБ ОЗУ, 75 МБ на узел и Linux 3.10 или выше.
Компания Goldwind Smart Energy, специализирующаяся на конкретных случаях использования, управляет более чем 30 000 ветряными турбинами, а K3 позволяют им развертывать кластеры Kubernetes в тысячах периферийных мест.
Инструкции по установке K3s на Raspberry Pi можно найти в Medium, но в основном, если у вас уже есть настроенные образы для вашей платы, все, что вам нужно сделать, это запустить:
1 |
curl -sfL https://get.k3s.io | sh - |
Который должен автоматически установить K3s для вашей архитектуры (amd64, armhf или arm64). Вы также найдете дополнительную информацию на официальном сайте и репозитории K3s github.
Чтобы запустить сервер:
1 2 |
sudo k3s server & sudo k3s kubectl get node |
и один agent:
1 |
sudo k3s agent --server https://myserver:6443 --token ${NODE_TOKEN} |
Где NODE_TOKEN из /var/lib/rancher/k3s/server/node-token
на сервере.
K3s также был продемонстрирован на FOSDEM 2019 в рамках доклада под названием «CI/CD для разработки встраиваемых систем с ESP8266, Arduino-cli, Gitlab-ci, Raspberry Pi и Kubernetes».
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.