Развёртывание Visiology в Kubernetes

Развёртывание Visiology в Kubernetes

Kubernetes – это платформа для автоматизированного управления контейнерами, которая помогает запускать, масштабировать и поддерживать работу приложений в распределенной среде, обеспечивая высокую доступность и отказоустойчивость.

Платформа предоставляет инструменты для автоматического распределения нагрузки между серверами, обеспечения отказоустойчивости за счет создания резервных копий данных и быстрого восстановления после сбоев. Она особенно полезна при работе с микросервисной архитектурой, когда приложение состоит из множества независимых компонентов, работающих вместе.

Развертывая Visiology в Kubernetes, вы получаете возможность автоматизировать весь процесс управления вашей аналитической платформой. Это включает в себя не только запуск сервисов, но и их масштабирование в зависимости от текущих потребностей бизнеса, а также обеспечение высокой доступности и отказоустойчивости системы.

Среди основных преимуществ использования Kubernetes можно выделить следующие:

  • Автоматизация процессов: Kubernetes автоматически управляет жизненным циклом ваших сервисов, позволяя быстро разворачивать новые версии приложения без простоев.

  • Масштабируемость: Платформу можно легко масштабировать, добавляя дополнительные ресурсы по мере роста нагрузки. Kubernetes сам распределяет задачи между доступными узлами, оптимизируя использование ресурсов.

  • Балансировка нагрузки: Система способна динамически распределять запросы между несколькими экземплярами сервиса, тем самым повышая производительность и снижая вероятность перегрузки отдельных узлов.

  • Отказоустойчивость: Каждый компонент платформы может работать в нескольких экземплярах, что исключает наличие единой точки отказа (SPOF). Если один экземпляр выходит из строя, другие продолжают работу, обеспечивая непрерывность обслуживания.

Ниже представлен пример конфигурации кластера Kubernetes:

config.png

Для того, чтобы развернуть Visiology в Kubernetes (K8s) необходимо выполнить следующие шаги:

  1. Установить Ingress.

  2. Установить HTTPS сертификат.

  3. Установить Visiology.

Установка Ingress

Для работы аналитической платформы Visiology требуется изменить дефолтные настройки Ingress.

Пример файла значений для Ingress-Nginx:

controller: config: enable-brotli: true force-ssl-redirect: true proxy-cache-background-update: true proxy-body-size: "100M" use-gzip: true proxy-buffering: "on" proxy-buffers: 4 "512k" proxy-buffer-size: "256k" proxy-busy-buffers-size: "256k" client-body-buffer-size: "128k" large-client-header-buffers: 4 "512k" kind: DaemonSet hostPort: enabled: false ingressClassResource: default: true metrics: enabled: false serviceMonitor: additionalLabels: release: prometheus enabled: true service: enabled: true type: LoadBalancer watchIngressWithoutClass: true extraArgs: default-ssl-certificate: "ingress-nginx/visiology-tls"

Пример применения (более подробную информацию вы можете найти на странице Ingress-Nginx Controller: Installation Guide):

helm upgrade --install ingress-nginx ingress-nginx \ --repo https://kubernetes.github.io/ingress-nginx \ --namespace ingress-nginx --create-namespace \ -f values.yaml

Установка HTTPS сертификата

kubectl create secret tls visiology-tls \ --cert=path_to_certificate.crt \ --key=path_to_privatekey.key \ -n ingress-nginx

Укажите свои пути к сертификату и приватному ключу. Ключ должен быть без пароля.

Установка Visiology

  1. Распакуйте полученный архив helm-чартов (запросить архив можно, написав в службу технической поддержки по адресу: support@visiology.su).

  2. Загрузка Docker образов:

    • Рекомендуется поместить образы в ваш корпоративный Container Registry. Список образов, необходимых для работы:

      cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/dashboard-service-3:3.12 cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/dashboard-viewer-3:3.12 cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/data-management-service:3.12 cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/formula-engine:3.12 cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/original/etl-db:15.8-k8s cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/original/jdbc-bridge:2.1.0-v3.11-fix-vuln cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/original/keycloak:23.0.6-k8s-visiology cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/python-script-service-3:3.12 cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/smart-forms-3:3.12 cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/visiology-designer:3.12 cr.yandex/crpe1mi33uplrq7coc9d/visiology/release/workspace-service:3.12 docker.io/bitnami/clickhouse:24.8.8-debian-12-r0 docker.io/bitnami/minio:2025.2.28-debian-12-r1 docker.io/bitnami/os-shell:12-debian-12-r32 docker.io/bitnami/postgres-exporter:0.16.0-debian-12-r1 docker.io/bitnami/postgresql:15.7.0-debian-12-r9 docker.io/bitnami/postgresql:16.3.0-debian-12-r12
  3. Чтобы скачать образы, нужно запросить токен аутентификации у технической поддержки по адресу: support@visiology.su. Токен активен 12 часов.

  4. Для тестового запуска можно использовать публичный Container Registry. Для этого требуется создать секрет в Kubernetes в нужном namespace:

    kubectl create secret docker-registry yandex-registry \ --docker-username=iam \ --docker-password=<TOKEN> \ --docker-server cr.yandex \ -n visiology-namespace
  5. Произведите следующие настройки в файле visiology-helm-chart/values.yaml:

    • Обязательно поменяйте значения XXXXXXXX на свои значения в файле visiology-helm-chart/values.yaml.

    • Введите значение вашего hardwareid и license.txt, полученного от службы поддержки.

    • Измените PLATFORM_URL и hostname с k8s.visiology.su на ваше значение. Для корректной работы оно должно соответствовать установленному HTTPS сертификату.

    • Измените количество реплик replicaCount на требуемое вам:

      • убедитесь, что в вашем кластере есть storageClass, поддерживающий обращение ReadWriteMany;

      • для сервиса dashboardViewer, при количестве реплик отличное от 1, требуется поменять значения accessModes на ReadWriteMany и указать storageClass, который допускает множественное чтение/запись. (Например, csi-s3 для Yandex Cloud).

    • При использовании сервисов minio, postgres, clickhouse из поставки установите размер запрашиваемого пространства на диске в соответствии с вашим профилем использования.

  6. Выполните команду установки из каталога со скриптами в нужный namespace:

    helm upgrade --install visiology visiology-3.12.0.tgz \ -f values.yaml \ -f image-values-release.yaml \ --create-namespace \ -n visiology-namespace
  7. Дождитесь полной загрузки системы.


Смотрите также

Развёртывание платформы

Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.