Чтобы попробовать Kubernetes-платформу Deckhouse в деле, придется найти мощный сервер, пространство у облачного провайдера или несколько машин и прокси-сервер. Но что делать, если хочется просто потестировать Deckhouse, а технических возможностей для этого нет? Конечно же, установить Deckhouse в kind — ведь для этой задачи сгодится даже ноутбук, а на выходе у нас будет рабочая инсталляция Kubernetes-платформы, правда, с некоторыми ограничениями.
Например, в kind не получится включить модули управления control-plane и узлами (хотя сам kind и поддерживает конфигурацию с несколькими узлами). Кроме того, есть сложности и по подключению внешних CNI, например того же Cilium. Встроенный в kind CNI можно отключить и поставить что-то другое (а для Cilium есть даже официальная инструкция), однако работоспособность в этом случае не гарантируется.
Итак, в этой статье мы установим Open Source-версию Deckhouse с помощью kind и попробуем платформу в деле — задеплоим небольшое приложение.
В прошлых статьях мы рассматривали, как развернуть Kubernetes-кластер под управлением Deckhouse в Yandex Cloud, на bare-metal-сервере с виртуализацией и в закрытом контуре с отключенным доступом наружу.
Разворачиваем Deckhouse на рабочем ноутбуке
Системные требования и общая информация
Для установки мы воспользуемся утилитой kind: она предназначена для локального запуска кластеров Kubernetes, а в качестве узлов использует Docker-контейнеры. Вообще, утилита создана для тестирования Kubernetes разработчиками, но ее можно задействовать и для локальной разработки или CI.
Требований к компьютеру не так много:
не менее 4 Гб оперативной памяти;
macOS или Linux (Windows не поддерживается);
установленный container runtime (Docker или containerd);
доступ в интернет (к хранилищу образов registry.deckhouse.io).
Весь процесс установки займет около 15 минут. Напомним, что Deckhouse будет развернут в минимальной конфигурации с включенным мониторингом на базе Grafana. При этом управление узлами или control-plane работать не будут.
Установка kind и Deckhouse
Убедитесь, что на вашем компьютере установлен container runtime: Docker (инструкция по установке) или containerd, — а также Docker-клиент.
В GitHub платформы есть заранее подготовленный скрипт — он установит все зависимости, включая сам kind, а затем развернет в нем кластер под управлением Deckhouse.
Запустим скрипт, взяв его напрямую с GitHub:
bash -c "$(curl -Ls https://raw.githubusercontent.com/deckhouse/deckhouse/main/tools/kind-d8.sh)"С помощью этой команды мы устанавливаем Community-версию Deckhouse (CE). Если у вас есть лицензионный ключ для Enterprise-версии, воспользуйтесь другой командой:
bash -c "$(curl -Ls https://raw.githubusercontent.com/deckhouse/deckhouse/main/tools/kind-d8.sh)" -- --key <LICENSE_KEY><LICENSE_KEY> — это как раз лицензионный ключ.
Сразу после запуска скрипт проверит, установлены ли нужные утилиты:
Detected operating system as mac (arm64).
Checking for docker...
Detected docker...
Checking for kubectl...
Detected kubectl...
Checking for kind...
kind is not installed.
Install kind? y/[n]:Если в системе не установлены зависимости (Docker или kubectl), скрипт завершится ошибкой, а в сообщении об ошибке вам порекомендуют установить необходимые зависимости. Если в системе еще нет kind, скрипт предложит установить его в автоматическом режиме. Соглашаемся с ним, указав y:
Install kind? y/[n]: y
kind installation directory [/Users/zhbert/.kind-d8]:Установка в домашний каталог пользователя — стандартный подход, поэтому ничего не меняем и просто нажимаем Enter.
Теперь необходимо указать имя будущего кластера. Оставим вариант по умолчанию (d8) и просто еще раз нажмем Enter.
Specify kind cluster name [d8]:
No kind clusters found.
Creating kind config file (/Users/zhbert/.kind-d8/kind.cfg)...
Creating Deckhouse installation config file (/Users/zhbert/.kind-d8/config.yml)...
Creating Deckhouse resource file (/Users/zhbert/.kind-d8/resources.yml)...
Creating cluster "d8" ...
✓ Ensuring node image (kindest/node:v1.25.9) 