Я Руслан Никитенко, инженер отдела сервиса компании Тринити. Этот материал является продолжением обзорной статьи про установку сервиса Cloudlink на среду виртуализации zVirt у одного нашего крупного заказчика. Во второй части я хочу рассказать про инструментарий платформы, который мне показался наиболее интересным и полезным. 

Интерфейс control-panel

Авторизация в «Интерфейс control-panel» доступна c учётной записью, созданной на этапе post-deploy. Необходимо ввести имя пользователя/e-mail, пароль и нажать на кнопку «Вход».

Администратор (глобальная роль Супер-администратор в control-panel) может:

  • настраивать права доступа, ресурсные правила в пространстве IAM и управление;

  • пополнять счета организаций в пространстве «Биллинг»;

  • управлять доступными для заказа на портале «Продуктами», настраивать их ограничения и действия в пространстве «Конструктор»;

  • настраивать подключение к платформам виртуализации и облачным провайдерам в разделе «Инфраструктура».

Переходим в https://control.clink.tesla-demo.local/infrastructure/inventory

В раздел «Облака» добавляем нашу среду виртуализации zVirt:

  • Сбор айтемов подразумевает сбор информации о дата-центрах, кластерах, доменах хранения и сетях.

  • Разведка VM – сбор информации о VM в среде виртуализации zVirt.


После добавления zVirt появится в списке облаков:

Кликнув по «zVirt», мы можем посмотреть процесс сбора информации:

В разделе «Виртуальные машины» можно увидеть список VM, который отображается после выполнения настройки выше. Здесь мы можем перенести VM, созданную непосредственно из панели управления zVirt, в нужный нам проект платформы Cloudlink для дальнейшего учёта.

В разделе «Конструктор» можно довольно гибко настраивать алгоритмы действий при создании/модификации/удалении тех или иных сервисов.

«Из коробки» мы получаем немалое количество преднастроенных графов, действий, шаблонов и пр. 

Рассмотрим на примере графа «Создать ВМ CentOS8-test» структуру конфигурации:

  • в меню «Общая информация» у нас есть возможность работы с различными версиями. Это довольно удобно, особенно в режиме тестирования.

  • в «Узлах» отображается информация в виде структурной схемы – видно, как будет создаваться тот или иной сервис или VM. 

Если нажать на «Редактирование», то увидим более подробную информацию:

  • в «Параметрах заказа» можно описать набор опций и действий при заказе сервиса или VM. Слева видим UI-отображение того, как это будет выглядеть в https://portal.clink.tesla-demo.local. Справа вкладки с JSON-описанием.

  • В «Модификаторы» можно выбрать тип среды для исполнения графа.

  • в «Сравнении» оцениваем разницу в версиях графа.

  • Для просмотра того, в каких продуктах используется описанный граф, есть вкладка «Использование».


В процессе создания продуктов и графов могут быть использованы однотипные совокупности операций или «Действия». Например: создание пользователя, создание или удаление БД, изменение конфигурации ВМ.

Совокупность доступных на платформе действий находится в меню «Конструктор» → «Действия».

Действия можно отфильтровать:

  • По типу – классифицирует действия в зависимости от ресурса (item-а), к которому они применимы (виртуальная машина, приложение):

    1. vm

    2. app

    3. vdc

    4. cluster

  • По провайдеру – платформа виртуализации, система оркестрации, база данных или контейнер, для которого доступно данное действие:

    1. zvirt

    2. nova

    3. vsphere

    4. openstack

    5. kubernetes

    6. и т. д.

  • По тегу.

Портал Cloudlink

После успешной авторизации рассмотрим продукты, доступные для заказа.

Базовые вычисления

На скриншоте выше я попробовал самостоятельно создать для заказа две дополнительные VM (в control-panel): Debian-test и CentOS8. Рассмотрим процесс заказа VM.

Необходимо задать имя VM, сеть, датацентр, платформу и HW-конфигурацию. При желании можем дополнительно смонтировать ещё один раздел и указываем SSH-ключ.

После нажатия кнопки «Заказать», мы видим процесс деплоя VM:

Мы также можем нажать на иконку «Часы» в статусе для оценки происходящих процессов:

А если перейти по иконкам в «Просмотр», то можем увидеть более подробные статусы деплоя:

Для нашей VM был специально выбран образ системы, имеющий некоторые специфичные настройки, и в результате деплоя мы умышленно получили ошибку: 

Для более углублённого поиска ошибок при деплое можно воспользоваться ресурсом https://awx.clink.tesla-demo.local

 Чтобы узнать пароль для входа, следует выполнить команду на target хосте:

sudo kubectl -n portal-box get secret awx-admin-password -o jsonpath='{.data.password}' | base64 -d && echo ''

После авторизации нас интересует вкладка «Jobs»:

Лог задачи 1443 — first-logon, соответствующей нашему деплою centos8-test-006, достаточно объёмный. В ознакомительных целях его окончание на моменте возникновения ошибки выглядит так:

ok: [centos8-test-006] => {
    "ansible_device_links": {
        "ids": {
            "dm-10": [
                "dm-name-znn-tmp",
                "dm-uuid-LVM-RetaGnwWe2ZHlxocoGGqS70u79KJ7m00bImDi6VStp8QAztGI0uQ1QtZro2oI0nG"
            ],
            "dm-11": [
                "dm-name-znn-home",
                "dm-uuid-LVM-RetaGnwWe2ZHlxocoGGqS70u79KJ7m00twW2Dr1bgCA9TdI1G1Y2UicfCdxgE5jr"
            ],
            "dm-3": [
                "dm-name-znn-zvirt--node--ng--3.3--0.20230822.0+1",
                "dm-uuid-LVM-RetaGnwWe2ZHlxocoGGqS70u79KJ7m00z6f2RZ32aWbyqTtlc3QKs5c4J3XMjF48"
            ],
            "dm-4": [
                "dm-name-znn-swap",
                "dm-uuid-LVM-RetaGnwWe2ZHlxocoGGqS70u79KJ7m00rRMbVE8cIr0djMCH2vTzpw60yEvl2v4e"
            ],
        …
TASK [linux_disk : Run vgscan to update the LVM cache] *************************
changed: [centos8-test-006]
TASK [linux_disk : Create a volume group with specific PE size] ****************
fatal: [centos8-test-006]: FAILED! => {"changed": true, "cmd": ["vgcreate", "-s", "4m", "vg_01", "/dev/sdb"], "delta": "0:00:00.035718", "end": "2024-06-13 15:41:33.527445", "msg": "non-zero return code", "rc": 5, "start": "2024-06-13 15:41:33.491727", "stderr": "  Cannot use /dev/sdb: device is rejected by filter config\n  Command requires all devices to be found.", "stderr_lines": ["  Cannot use /dev/sdb: device is rejected by filter config", "  Command requires all devices to be found."], "stdout": "", "stdout_lines": []}
PLAY RECAP *********************************************************************
centos8-test-006           : ok=32   changed=8    unreachable=0    failed=1    skipped=14   rescued=0    ignored=3   

В случае успешного создания VM мы получаем «зелёный» статус:

А в zVirt это будет выглядеть так:

Базы данных

Cloudlink имеет преднастроенные шаблоны базы данных, такие как ClickHouse, Elasticsearch, MongoDB, MySQL, PostgreSQL, Redis.

Рассмотрим деплой на базе PostgreSQL.

Необходимо задать: 

  • пароль пользователя; 

  • имя VM;

  • сеть; 

  • датацентр; 

  • платформу; 

  • HW-конфигурацию; 

  • шаблон ОС, на которой будет работать база; 

  • при необходимости смонтировать дополнительный раздел.

После успешного деплоя видим «зелёный» статус:

Web-приложения

Cloudlink имеет преднастроенные шаблоны web-приложений, таких как Nginx, WildFly и zVirt. 

Рассмотрим деплой web-сервиса Nginx.

Необходимо задать:

  • пароль пользователя; 

  • имя VM;

  • сеть; 

  • датацентр; 

  • платформу; 

  • HW-конфигурацию; 

  • шаблон ОС, на которой будет работать база; 

  • при необходимости смонтировать дополнительный раздел.

В отличии от предыдущего развёртывания БД на базе ОС Ubuntu, в этот раз попробуем использовать RedOS.

После успешного деплоя видим «зелёный» статус:

Контейнеры

При выборе заказа из категории «Контейнеры» нам предлагается на выбор Kubernates cluster и Nova Cluster.

Kubernates cluster

Рассмотрим процесс заказа Kubernates cluster.

Нам необходимо указать:

  • имя кластера;

  • сеть; 

  • дата-центр; 

  • платформу; 

  • образ ОС (в данном случае Ubuntu); 

  • настроить параметры HW и размер хранилища для master; 

  • настроить количество workers и параметры HW с размером хранилища; 

  • указать SSH-ключ.

В панели управления zVirt это будет выглядеть таким образом:

После успешного деплоя видим статусы успешного запуска:

Если перейти в какой-либо инстанс кластера, то можем увидеть дополнительную информацию. Рассмотрим на примере worker №1:

Nova cluster

Рассмотрим процесс заказа Nova cluster.

Нам необходимо указать:

  • имя кластера; 

  • сеть;

  • дата-центр; 

  • платформу; 

  • образ ОС (в данном случае RedOS); 

  • настроить параметры HW и размер хранилища для master; 

  • настроить количество workers и параметры HW с размером хранилища; 

  • указать SSH-ключ; 

  • базовый домен (внутренний) и базовый домен (публичный).

Важно! При указании базового домена, как внутреннего, так и внешнего, стоит указывать доменное имя, отличное от того, которое мы настраивали для universe. Иначе в процессе деплоя мы можем столкнуться с конфликтом DNS-имён.

В панели управления zVirt это будет выглядеть таким образом:

После успешного деплоя можем увидеть статус запуска:

Заключение

Следующим шагом в моей работе было применение полученных знаний и наработок при внедрении платформы у конечного заказчика. Благодаря предварительному тестированию я смог не только эффективно адаптировать Cloudlink под специфические потребности заказчика, но и минимизировать риски, связанные с возможными проблемами в процессе эксплуатации системы. Это внедрение позволило увидеть реальную картину использования Cloudlink в бизнес-процессах и дало нашей команде ценный опыт для дальнейших проектов. 

Надеюсь, этот материал будет кому-то полезен. Задавайте ваши вопросы в комментариях, пожалуйста. 

Комментарии (0)