Наименование системы: RT.ClusterManager.
(Документ относится к RT.ClusterManager версии 1, архивный)
RT.ClusterManager – оркестратор, в котором установка, настройка и обновление кластеров производятся по нажатию кнопки в графическом интерфейсе. При этом все настройки ОС, сервисов, сети, монтирование дисков происходят автоматически. В результате пользователи получают стек мониторинга, готовый к интеграции с корпоративными системами.
В настоящем документе использованы и определены следующие термины и сокращения:
Термин/Сокращение |
Определение |
---|---|
Google Cloud, GCP | Google Cloud Platform («Облачная платформа Google», сокр. GCP) – предоставляемый компанией Google набор облачных служб, которые выполняются на той же самой инфраструктуре, которую Google использует для своих продуктов, предназначенных для конечных потребителей, таких как Google Search и YouTube. Кроме инструментов для управления, также предоставляется ряд модульных облачных служб, таких как облачные вычисления, хранение данных, анализ данных и машинное обучение. |
PostgreSQL |
Свободная объектно-реляционная система управления базами данных (СУБД). Существует в реализациях для множества UNIX-подобных платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows. |
Керберизация |
(от англ. Kerberos) является сторонним механизмом аутентификации, на который полагаются пользователи и сервисы для удостоверения подлинности друг друга. Сам сервер Kerberos известен как Key Distribution Center (Центр распределения ключей) или KDC. Он состоит из трех частей:
|
Оркестратор | Сервисное программное обеспечение, установка которого выполняется на отдельный хост. Цель использования данной программы – учет и распределение задач исполнения процессов между активными хостами с определёнными параметрами, обеспечение конфигурации для взаимодействия с внешними системами, а также учет и разграничение прав пользователей системы. |
ОС | Операционная система |
Репозито́рий |
Место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети. В частности, репозиторий используется для получения хостами на которые устанавливается Система инсталляционных файлов. Возможно использование «локального репозитория» (см. 2.2 документа "RT.ClusterManager.Руководство по установке") и «глобального репозитория» (web-ресурс Ростелеком на котором размещены инсталляционные файлы Системы, настройка доступа к нему выполняется самостоятельно). |
Система | Система «RT.ClusterManager» |
Хост | (от англ. Host – «владелец, принимающий гостей») – любое устройство, предоставляющее сервисы формата «клиент-сервер» в режиме сервера по каким-либо интерфейсам и уникально определённое на этих интерфейсах. В более широком смысле под хостом могут понимать любой компьютер, подключённый к локальной или глобальной сети. |
Ansible (software) | Система управления конфигурациями. Используется в работе RT.ClusterManager для запуска ansible-ролей плагина RT.DataLake |
ansible (user) | (именно как пользователь) – фиксировано заданный (в данном документе) пользователь для корректной работы ansible-ролей с контейнера rtcm на хосты. При необходимости везде можно заменить на другого, но обязательно новый пользователь должен уметь подключаться к хостам посредством ключевой пары без пароля (в том числе при выполнении sudo). |
Hostname FQDN | (от англ. Fully Qualified Domain Name – «полностью определённое имя домена», иногда сокращается до «полное имя домена») – имя домена, не имеющее неоднозначностей в определении. Включает в себя имена всех родительских доменов иерархии DNS. |
Полностью установленный RT.ClusterManager предоставляет следующие возможности:
В качестве пользователей Системы выступают администраторы, отвечающие за развертывание кластеров, обеспечивающих работу заданного приложения, состоящих из фиксированного набора компонентов и выполняющие мониторинг их функционирования, их перенастройку.
Администраторы Системы должен иметь навыки работы со следующими продуктами:
Пользователи Системы должны иметь опыт администрирования кластеров.
Пользователь Системы должен иметь в Системе учетную запись с ролью, соответствующей его функциональным обязанностям.
Первичная проверка работоспособности компонентов системы заключается в авторизации в Системе под учетной записью пользователя.
Приложение RT.ClusterManager это решение, которое упрощает развертывание и управление службами данных локально, в частных или общедоступных облаках.
Объектная модель RT.ClusterManager представлена на Рис. 1.
В данном случае хост – это компьютер, предоставляющий сервисы «клиент-сервер» (клиент-серверная сетевая архитектура) в качестве сервера. Хост может быть размещён в сети предприятия или в облаке. Хост может быть реальным (аппаратным, физическим) или быть виртуальным (когда на одном физическом сервере при помощи специального программного обеспечения размещаются два и более серверов). Хост может быть включен в кластер, в этом случае на него размещается программное обеспечение компонента одного из сервисов кластера.
Провайдер – в данном случае это абстракция, предоставляющая хосты. Провайдером можно назвать группу, объединяющую собственные хосты для включения в заданный кластер. А также провайдер может включать хосты, предоставляемые в аренду сторонней организацией
Например, у вас есть учетная запись Google Cloud. Далее с помощью этой записи создается необходимое количество хостов. Затем в RT.ClusterManager создаем провайдера и подключаем к нему созданные хосты.
Сервис – это программное обеспечение, которое выполняет определенные функции. Примеры сервисов: Zookeeper, Hive, Spark и так далее.
Компонент – это часть сервиса. Например, сервис HDFS имеет компоненты: Namenode, Datanode и т.д. Это способ декомпозиции сервисов, применяемой в среде Apache.
Кластер – это набор служб, работающих на группе хостов. В RT.ClusterManager вы можете создать множество кластеров с различной конфигурацией и распределением сервисов по кластерам.
Один кластер допускает только ограниченный набор сервисов. Поэтому, если вы создаете кластер из плагина RT.DataLake, то на него уже не будет возможности установить сервисы из плагина RT.Streaming (необходимо создавать отдельный кластер).
Для запуска Системы необходимо в браузере в адресной строке набрать сетевое имя устройства (hostname FQDN), соответствующее её размещению и ввести логин и пароль в окне авторизации (см. Рис. 2).
После выполнения авторизации откроется одна из основных форм в зависимости от того какие роли назначены пользователю, прошедшему авторизацию.
Важно: При первом входе в Систему по заданным по умолчанию учётным данным будет предложено завести нового пользователя с паролем и указанием необходимых полномочий (см. п. 3.5 документа «RT.ClusterManager.Руководство по установке») в дальнейшем вход по заданным по умолчанию учётным данным будет заблокирован.
Для выбора одной из основных форм работы либо выхода из системы используется главное меню. Для вызова главного меню необходимо нажать на имя пользователя в правом верхнем углу формы (см. Рис. 3).
Выберите одну из основных форм для работы с ней или нажмите Выход.
В главном меню RT.ClusterManager реализован переход к следующим основным формам:
Примечание: Здесь и далее представлен полный доступ к функциям Системы, но для конкретного пользователя, в зависимости от ролей которые были ему предоставлены, могут отсутствовать либо быть заблокированы формы, кнопки, данные.
При навигации по дочерним формам в верхней части окна отображается путь к заданному дочернему окну, при необходимости быстрого возврата к форме «Кластеры» нажмите на надпись
, отображённой в левой верхней части формы.
Перед созданием с помощью RT.ClusterManager кластеров заданного типа необходимо загрузить плагины. Именно плагин определяет набор сервисов, составляющих кластер заданного типа.
Для загрузки плагинов необходимо:
1. В главном меню выберите Плагины (см. Рис. 4).
2. На открывшейся форме «Плагины» (см. Рис. 5) нажмите на кнопку «+ Добавить плагин».
3. Выберите архив с плагинами на диске (см. Рис. 6). Необходимо обязательно добавить плагин: System, которым соответствуют файлы: RT.System.tar.gz, из комплекта поставки Системы (архив RT.ClusterManager_номер_версии.tar.gz). Имена плагинов изменять запрещено.
Плагин System - первый, основной плагин и используется для создания провайдеров, валидации хостов и т.д.
Остальные плагины, как например, Datalake и Streaming используются для создания кластеров
4. После загрузки необходимые плагины появятся в списке плагинов (см. Рис. 7).
Для того чтобы сервисы создаваемых кластеров могли использовать выделяемые им для работы серверы (хосты), должен быть создан провайдер.
Для каждого кластера должен быть выбран единственный провайдер.
Сервисы устанавливаются на хосты, описанные/заданные в провайдере.
Для создания провайдера и добавления для данного провайдера хостов необходимо выполнить следующие действия:
1. На форме «Кластеры» перейдите на вкладку «Провайдеры» и нажмите на кнопку «+ Добавить» (см. Рис. 8).
2. В открывшемся окне (см. Рис. 9), заполните поля «Название провайдера», «Описание» и выберите из списка плагин, необходимый для его создания, а затем нажмите кнопку «Добавить».
3. После того как провайдер создан, он появится в списке (см. Рис. 10).
4. Нажмите кнопку «Открыть» на карточке созданного провайдера.
5. Для добавления хостов удобно пользоваться импортом из заранее подготовленного файла в формате json – hosts.json, как подготовить файл описано в п. 5.2.1, в противном случае придётся создавать хосты по одному, а потом выполнять настройки для каждого из них.
6. Для импорта списка хостов из подготовленного файла нажмите на кнопку «+ Добавить хосты», и в появившемся меню выберите «Импортировать» (см. Рис. 11).
7. В появившемся окне выберите файл hosts.json в каталоге, в котором вы его подготовили и нажмите кнопку «Открыть» (см. Рис. 12).
8. На основании загруженного файла будет сформирован список хостов (см. Рис. 13).
9. Содержимое закрытой части ключа или же путь к файлу ключа должны автоматически появиться после импорта файла hosts.json, это можно проверить для каждого хоста провайдера, нажимая на значок шестерёнки в конце строки с названием хоста (см. Рис. 14).
Нажав на кнопку
расположенную справа от наименования хоста можно запустить его проверку.
Используя кнопку
расположенную справа от наименования хоста можно его удалить.
Чтобы не добавлять в провайдер хосты вручную, можно загрузить файл со списком хостов (полные FQDN) и их параметрами - пользователем с правом подключения по ключу и самим ключом (или путём до файла ключа в контейнере).
Пример с путём до файла ключа:
{
"host-1.local" : null,
"host-2.local" : null,
"default": {
"ansible_user" : "ansible",
"ansible_ssh_private_key_file" : "/opt/app/data/id_rsa"
}
}
Ключ нужно вставить в файл целиком (например, из файла закрытой части ключа id_rsa пользователя ansible) в одну строку, при необходимости все переносы строки внутри заменить \n, так же добавить \n в конце.
Форма вызывается из главного меню при нажатии на выбор «Кластеры».
Форма и подчинённые ей формы предоставляют возможность выполнения следующих операций:
Внутри каждого кластера есть возможность выполнять ряд функций:
На форме «Кластеры» отображается список существующих кластеров (см. Рис. 15).
При большом количестве кластеров, для поиска кластера по его наименованию можно воспользоваться строкой поиска, расположенной в верхней части формы.
Для переключения вида отображения созданных кластеров в виде карточек или в виде списка можно воспользоваться соответствующими кнопками «Плитка» и «Список» расположенными в правом верхнем углу формы.
Для создания нового кластера, на форме «Кластеры» нажмите кнопку «+ Создать» расположенную слева в верхней части формы (см. Рис. 15).
Откроется окно создания нового кластера (см. Рис. 16), в котором необходимо задать название кластера и его дескриптор – краткое описание кластера, а также выбрать из списка плагин программного продукта и платформу для создаваемого кластера соответствующих его назначению (см. Рис. 17 и Рис. 18).
При создании кластера можно включить Керберизацию, при этом для создаваемого кластера будет использоваться сторонний механизм аутентификации и должны быть выполнены дополнительные настройки (см. п. 6.5).
Для создания нового кластера с указанными данными нажмите кнопку «Создать».
Предупреждение: Имя кластера должно быть уникально, при попытке создания кластера с уже существующем наименованием будет выдано сообщение об ошибке.
После того как создан новый кластер, для его запуска должны быть выполнены следующие операции:
При нажатии на кнопку «Открыть» на карточке кластера или нажатии на строку в списке кластеров откроется форма просмотра и редактирования данных по выбранному кластеру (см. Рис. 19).
В левой части формы размещены блоки размещения данных по кластеру:
Файл конфигурации, предоставляет собой структурированный перечень параметров хостов и сервисов в RT.ClusterManager.
Настройка локального репозитория описана в п. 2.2 документа “RT.ClusterManager.Руководство по установке”.
Для того, чтобы RT.ClusterManager мог получить доступ к инсталляционным файлам из локального репозитория, пути к ним необходимо указать в настройках кластера, для чего:
1. Нажмите кнопку «Настройки», расположенную в левой нижней части формы (см. Рис. 20, выделено красным).
2. На вкладке «repos» проставьте адрес репозитория
http://полный_адрес_машины_с_репозиторием:порт/название_репозиториев
(В соответствии с п.2.2 документа «RT.ClusterManager. Руководство по установке»). (см. Рис. 20).
Например:
http://myrepo:1337/packages/rt.ca.repo/rt.ca/
http://myrepo:1337/packages/rt.datalake
http://myrepo:1337/packages/rt.streaming
В случае если мы используем локальный репозиторий необходимо заменить “myrepo” на свои соответствующие адреса.
3. Для потоковых компонентов kafka и nifi необходимо указать один и тот же репозиторий (RT.Streaming).
4. Пример настройки локальных репозиториев для кластера, созданного с помощью плагина RT.DataLake (см. Рис. 21).
5. Пример настройки для локальных репозиториев потокового кластера RT.Streaming (см. Рис. 22).
6. В случае, если мы не используем локальный репозиторий, то эти настройки менять не требуется (они задаются в файле docer-compose.yaml - см. п. 3.3 документа "RT.ClusterManagerРуководство по установке").
В случае, если при создании кластера был включён флаг использования керберизации необходимо выполнить настройку параметров керберизации, для чего:
Список настроек:
admin_password – пароль администратора домена, имеющего доступ к созданию пользователей в службе каталогов Active Directory.
admin_user – имя администратора домена.
kdc_server – адрес сервера центра распределения ключей Kerberos (KDC).
ldap_server – адрес сервера контроллера домена с установленной службой каталогов (например, Active Directory), обычно совпадает с kdc_server, но с указанием протокола передачи данных (LDAP по умолчанию).
base – Полный путь до Подразделения (Organizational Unit), в котором будут создаваться учётные записи, необходимые для доступа к сервисам Системы.
default_domain – имя домена.
kvno – ключ номера версии, целое положительное число, дополнительный критерий защиты: если в keytab несколько записей для одного и того же принципала с разным KVNO, валидной будет считаться та запись, KVNO которой совпадает с текущим KVNO этого принципала в базе данных безопасности KDC (обычно запись с наибольшим KVNO).
principal_password – пароль, который будет задан всем создаваемым учётным записям, которым разрешена аутентификация в Kerberos.
keytab_path – путь до файла таблицы ключей.
encryptions – все типы шифрования, которые разрешены к использованию при шифровании сессионного ключа.
Примечание: Включение большого количества разрешенных типов шифрования может привести к увеличению вычислительной нагрузки на кластере.
После настройки можно приступать к обычному развертыванию сервисов – кластер будет керберизирован.
В блоке «Сервисы», ниже наименования блока отображаются сервисы, созданные для данного кластера.
При нажатии на сервис – в правой части формы отобразятся настройки компонентов по выбранному сервису и хосты, к которым они привязаны (см. Рис. 24).
Для создания сервисов нажмите кнопку «+», расположенную рядом с наименованием блока «Сервисы» (см. Рис. 24). В соответствии с плагином, который был выбран при создании кластера будет предложен список возможных сервисов (см. Рис. 25).
Отметьте создаваемые сервисы «галочкой» и нажмите кнопку «Сохранить».
Созданные сервисы появятся в списке.
Порядок распределения по нодам сервисов для каждого из плагинов, на основании которого создаются кластеры представлен в соответствующем файле Приложения (см. документ “RT.ClusterManager.Порядок распределения сервисов по нодам”).
Перед настройкой компонентов сервиса должен быть определён и настроен Провайдер (см. п.5.2). Далее можно приступить к распределению компонентов сервиса по хостам.
Нажимая «+» перед наименованием компонента сервиса (см. Рис. 24) вызываем форму подключения хоста к компоненту сервиса (см. Рис. 26).
Для добавления хоста к компоненту сервиса выберите хост, пометив его галочкой и нажмите кнопку «+ Добавить».
Примечание: Если подключается первый хост кластера, то откроется диалоговое окно выбора провайдера из списка имеющихся (см. п. 5.2.), выберите провайдера, в дальнейшем хосты для выбора будут появляться только имеющиеся у данного провайдера.
Настройки параметров сервиса сохраняются в соответствующих конфигурационных файлах.
Для изменения конфигурационных файлов нажмите в верхней части формы кнопку «Settings», откроется форма настройка параметров сервиса (см. Рис. 27).
В верхней части формы переключаясь между соответствующими конфигурационными файлами необходимо скорректировать/заполнить значения параметров и нажать кнопку «Сохранить» в нижней части формы.
При наведении курсора на символ «i», расположенный слева от наименования параметра можно увидеть краткое описание данного параметра.
Количество сервисов, их компоненты и их настройки зависят от типа описываемого кластера и соответственно от плагина выбираемого при создании кластера.
После того как к созданному сервису подключены хосты и выполнена его настройка, сервис необходимо инсталлировать.
Для выполнения инсталляции сервиса нажмите кнопку «Действия» в правом верхнем углу описания выбранного сервиса, и выберите действие «INSTALL» (см. Рис. 28).
Проконтролировать результат выполнения операции по инсталляции выбранного сервиса можно с помощью блока «События и логи» (см. п. 6.9).
В блоке «Провайдер» отображаются выбранный провайдер, хосты к нему подключенные и их статус. Для отображения этих данных нажмите на кнопку «Провайдер» в левом нижнем углу формы (см. Рис. 29).
Выбор провайдера выполняется при подключении первого хоста для сервиса.
В блоке «Метрики» в графическом виде отображаются данные метрик по выбранному сервису. Первичный набор метрик определен в контейнере, входящем в соответствующий плагин по которому создается кластер.
В верхней части формы расположены настроечные поля (см. Рис. 30).
В настроечной части можно выбрать сервис, по которому будут отображаться графики изменения метрик, один их заданных диапазонов в списке значений и шаг фиксации изменения метрики.
Можно добавить собственную метрику, для этого нажмите на кнопку «+ Добавить», в этом случае откроется форма Добавления метрики (см. Рис. 31).
Введите значения полей, и выберите тип метрики из списка значений («Instant», «Scalar», «String»). Для добавления дополнительного запроса нажмите кнопку «+ Запрос», для сохранения новой метрики нажмите кнопку «Сохранить».
Графики имеющихся метрик в соответствии с выбранными настройками отображаются ниже на форме (см. Рис. 32).
После нажатия на кнопку в левой нижней части формы «События и Логи» – отобразятся события по функционированию кластера (см. Рис. 33) с сортировкой по дате по убыванию (т.е. последнее события находится в начале списка).
Чтобы просмотреть логи по выбранному событию нажмите на строку события, откроется окно с логами по данному событию с повременной разбивкой (см. Рис. 34).
Выбирая лог в блоке «Время», в правой части формы будет представлено его содержание.
Для удобства выборки логов, например, по дате, можно воспользоваться строкой поиска в верхней части формы.
Для изменения порядка сортировки логов нажмите на стрелку рядом с наименованием блока «Time».
Для возврата к списку событий нажмите на стрелку возврата в левом верхнем углу.