Установка Deckhouse в kind: пробуем K8s-платформу на ноутбуке — без серверов и облаков

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Чтобы попробовать 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) 						
Источник: https://habr.com/ru/companies/flant/articles/767872/


Интересные статьи

Интересные статьи

Как накатить Swift на Windows и возможно ли это? В этой статье достаточно подробно рассказывается о моих изысканиях по этому поводу. Не до конца ясная документация, ошибки сборки и щепотка крайне неоч...
Привет, Хабр! Состояние сервера необходимо постоянно мониторить, чтобы в случае ошибки быстро ее исправить. Удобнее всего отслеживать работоспособность с помощью смартфона, а именно Telegram-бота, он ...
Меня зовут Виталий и я автотестер в компании Утконос ОНЛАЙН. В предыдущей статье я рассказал, почему мы решили использовать фреймворк для автоматизации тестирования, описал существующие варианты, наш ...
Продолжаем знакомить вас с аспектами информационной безопасности при использовании услуг облачных провайдеров в нашей серии статей. В этой статье проводим границу между зонами ответственности клиента ...
Датские инженеры представили алгоритм, который уже используют крупные ИТ-компании и облачники. Рассказываем, как он устроен и обсуждаем перспективы.