Обсудить
бизнес-задачи

Установка Apache SuperSet в кластер Kubernetes на ОС Windows

блог о bi, №1 в рунете
Kubernetes является платформой оркестрации контейнеров, предназначенной для развертывания и управления контейнерами приложений. Кластер Kubernetes (или K8s) решает вопрос масштабирования, запуска контейнеров на большом количестве хостов и балансировки нагрузки.

В нашем примере мы будем использовать локальный одноузловой кластер Kubernetes на базе Minikube.

Подготовка к работе

Для успешного развертывания SuperSet в кластере Kubernetes нам необходимо:

1. Следуя статье "Установка Apache SuperSet с помощью Docker на ОС Windows" (п. 1 – 3) включить поддержку гипервизора, установить WSL2, Ubuntu, Docker Desktop;

2. Установить инструмент командной строки Kubernetes kubectl:
winget install Kubernetes.kubectl
3. Скачать и установить Minikube для Windows;

4. Установим пакетный менеджер Helm:
winget install Helm.Helm
Также имеется возможность установить необходимые пакеты вручную без использования пакетного менеджера WinGet. При ручной установке пакетов, для доступа к ним из командной строки необходимо будет вручную добавить их в переменные среды PATH.

Развертывание

1. Необходимо запустить локальный кластер Kubernetes, для этого в командной строке вводим:
minikube start
Запустится процесс скачивания образа и установки кластера, по его завершению проверим статус командой:
minikube status
Корректно установленный и запущенный кластер выдаст соответствующий статус:
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
2. Для отслеживания состояния работы кластера, деплоев и менеджмента ресурсов необходимо запустить веб интерфейс Kubernetes Dashboard.
Для этого необходимо ввести в командную строку команду:
minikube dashboard
Сервис поднимет локальный веб сервер и после запуска откроет в браузере веб интерфейс Kubernetes dashboard.
3. Необходимо добавить репозиторий Apache Superset в пакетный менеджер Helm:
helm repo add superset https://apache.github.io/superset
4. После добавления репозитория SuperSet в Helm можно запустить установку и последующий запуск контейнера SuperSet командой:
helm upgrade --install --values values.yaml superset superset/superset
Где values.yaml – файл чарта с кастомизируемыми параметрами установки/обновления для Helm, шаблон которого доступен по ссылке.
4.1. Перед запуском установки в нём необходимо указать ключ SECRET_KEY:
configOverrides:
  secret: |
    SECRET_KEY = 'SECRET_KEY_VALUE'
4.2. Добавить необходимые зависимости пакетов из PyPI для поддержки подключения к базам данных:
bootstrapScript: |
  #!/bin/bash
  pip install psycopg2==2.9.6 \
    sqlalchemy-bigquery==1.6.1 \
    elasticsearch-dbapi==0.2.5 &&\
  if [ ! -f ~/bootstrap ]; then echo "Running Superset with uid {{ .Values.runAsUser }}" > ~/bootstrap; fi
Список поддерживаемых баз:
Connecting to Databases
Для ознакомления с продуктом можно запустить SuperSet в тестовом режиме с предзагруженной демо базой и дашбордами. Для этого необходимо дополнить конфиг соответствующим параметром:
init:
  loadExamples: true
Также в разрезе init файла values.yaml необходимо задать логин и пароль администратора для авторизации в SuperSet:
init:
createAdmin: true
adminUser:
username: admin
firstname: Superset
lastname: Admin
email: admin@superset.com
password: passwd
После установки и запуска SuperSet в дашборде Kubernetes мы можем наблюдать состояние наших деплоев и их pod’ов.
На этом этапе деплой контейнера с Superset в кластер Kubernetes завершен.

Для доступа к веб серверу SuperSet необходимо настроить туннель между локальным компьютером и экземпляром кластера Kubernetes:
kubectl port-forward service/superset 8088:8088
После чего доступ к веб интерфейсу SuperSet будет доступен по адресу http://127.0.0.1:8088