Развёртывание 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 сертификата для Ingress (опционально)

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

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

Установка Visiology

  1. Скачайте helm чарт нужной версии.

    • Получите токен аутентификации на сайте https://distrib.visiology.su на вкладке YCR токен.

    • Войдите в helm репозиторий.

      helm registry login cr.yandex -u iam -p <TOKEN>
    • Скачайте нужную версию чарта 3.16.х.

      helm pull oci://cr.yandex/crpick9dmcjif7me5pr5/visiology --version 3.16.0
  2. Генерация первоначальных значений для установки:

    • Извлеките из архива чарта файл settings.yaml

    • Заполните файл settings.yaml нужными вам значениями. Обязательны к заполнению:

      • global.commonEnv.PLATFORM_DOMAIN

      • global.commonEnv.SUBFOLDER

    • Для использования собственного сертификата для HTTPS заполните поле global.tlsCertificate

    • Выполните команду первичной установки, где <NAMESPACE> создан заранее.

      helm template visiology visiology-3.16.0.tgz --show-only templates/auth-secrets.yaml \ --show-only templates/global.yaml \ --show-only templates/license-configmap.yaml \ --show-only templates/tls-secret.yaml \ --dry-run=server \ -f settings.yaml \ -n <NAMESPACE> | \ kubectl apply -n <NAMESPACE> --server-side --field-manager=helm -f -
  3. Получение Hardware ID.

    kubectl get secret visiology-license -o jsonpath="{.data.hardwareid}" -n <NAMESPACE> | \ base64 -d
  4. Отправьте Hardware ID в службу технической поддержки по адресу support@visiology.su для получения лицензии.

  5. Опционально. Загрузка Docker-образов:

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

    • Токен для скачивания образов можно получить на сайте https://distrib.visiology.su на вкладке YCR токен.

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

    kubectl create secret docker-registry yandex-registry \ --docker-username=iam \ --docker-password=<TOKEN> \ --docker-server cr.yandex \ -n <NAMESPACE>
  7. Развёртывание платформы с полученной лицензией, где YYY - полученная лицензия:

    helm upgrade --install visiology visiology-3.16.0.tgz -n <NAMESPACE> \ --set "license.license\.txt=YYY"
  8. Дождитесь полной загрузки системы.


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

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

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

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