Перейти к содержанию

Быстрая установка VK People Hub

С целью быстрого развёртывания на готовой инфраструктуре, предусмотрен скрипт быстрой установки VK People Hub.

Использование скрипта быстрой установки VK People Hub позволяет:

  • Автоматизировать процесс установки некоторых инфраструктурных и продуктовых компонентов.
  • Снизить влияние человеческого фактора при копировании переменных между компонентами.
  • Решить проблему с зависимостями компонентов (порядок установки компонентов).
  • Уменьшить время установки и снизить вовлеченность технических специалистов в момент установки продукта.

✅ Рекомендуется для задач прототипирования и разворачивания пилотных инсталляций.

⛔️ Не рекомендуется для задачи разворачивания продуктивных стендов.

Требования

Для работы скрипта необходимы:

  1. Логин и пароль от хранилища raw.people-hub.ru.
  2. Values к продуктовым сервисам, размещённые по ссылке https://raw.people-hub.ru/values/release-peoplehub-{Номер релиза}.tar.gz.
  3. Файл TLS сертификата и приватного ключа в pem формате.
  4. Утилиты helm, kubectl, yq, envsubs.
  5. Доступ в кластер kubernetes (kubeconfig файл).

Настройка

Для настройки скрипта необходимо:

  1. Распаковать файлы настройки сервисов продукта из архива release-peoplehub-{Номер релиза}.tar.gz в папку product
  2. Заполнить файл ph.yaml

Описание

Данный скрипт является оберткой над инструментом Helm, который расчитан для запуска в Linux системах.

Скрипт логически разбит на 3 части:

  1. Pre-install. Подготовка инфраструктуры:

    • проверка установленных приложений необходимых для работы скрипта;
    • создание dockerjson и TLS секретов из файлои и введенных данных;
    • валидация yaml файла ph.yaml;
    • подготовка кластера Kubernetes (ns, limits).
  2. Infrastructure. Установка инфраструктурных компонентов

  3. Product. Установка продуктовых сервисов

Скрипт запускается с 2 параметрами:

  1. Полный путь к kubeconfig файлу (можно использовать переменные)
  • $HOME/.kube/config
  • /home/root/.kube/phtest
  • /some/url/config
  1. Путь к ph.yaml файлу. Можно использовать относительный путь. Например:
  • ph.yaml
  • /home/someuser/ph-install/ph.yaml

Пример запуска скрипта из директории ./install.sh $HOME/.kube/phtest ph.yaml

Установку каждого компонента продукта или инфраструктуры можно отключить, установив install: false в блоке yaml нужного компонента.

Если используется внешний инфраструктурный компонент, то необходимо сделать следующие шаги:

  1. Выключить установку компонента install: false
  2. Добавить путь к внешнему компоненту в переменную external_host и где необходимо другие переменные с префиксом external_. Если их оставить пустыми, то будут использоваться значения по умолчанию, предусмотренные для установленных внутри кластера.
  3. Заполнить авторизационные данные (логины, пароли и т.д.).

Для установки продукта нужны Volume provisioner и ingress controller. В скрипте возможна установка nginx-ingress-controller и local-path-provisioner.

Глобальные переменные

Секция global содержит переменные связанные со всеми сервисами. В комментариях файла конфигураций ph.yaml вы можете найти их описание. Каждая секция компонента содержит сведения о используемом helm chart, его версия и путь к файлу настроек values.

  helm:  
    chart:  
      repo: ""  
      name: local-path-provisioner  
      version: 0.0.25-dev  
    values: infrastructure/local-path-provisioner.yaml  

По умолчанию используется репозиторий https://chart.people-hub.ru.

Оценка производительности быстрой установки VK PeopleHub

Тестирование скрипта выполнялось на виртуальной машине следующей конфигурации:

  • CPU 8x3GHz
  • RAM 16Gb

Ресурсы кластера Kubernetes, использованного для тестового развёртывания:

  • Master node

    • количество: 1
    • vCPU: 4
    • RAM: 4Gb
  • Worker node

    • количество: 5
    • vCPU: 4
    • RAM: 16Gb

Усреднённая продолжительность процесса установки с использованием скрипта быстрой установки - 40 мин.

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

Диагностика и устранение неисправностей

Скрипт использует Helm для установки компонентов. В случае неуспешного завершения установки какого-либо компонента, сообщение об ошибке может быть найдено в файле install.log.

Скрипт завершает свою работу, если установка одного из компонентов завершилась неудачно.