Pulsar на KubeSphere. Установка платформы распределённого обмена сообщениями и потоковой передачи данных

ARTICLES 06.04.22 06.04.22 92
Бесплатные курсына главную сниппетов
Apache Pulsar и KubeSphere — мощные инструменты для нативных облачных приложений. В этом посте мы покажем, как развернуть Pulsar на KubeSphere с нуля.

KubeSphere — контейнерная платформа с открытым исходным кодом на базе Kubernetes, которая предоставляет пользователям ориентированный на приложениях опыт. В связи с этим она обладает полным набором инструментов для разработчиков, позволяющих управлять приложениями на протяжении всего их жизненного цикла. В этой статье в качестве примера я продемонстрирую, как установить Apache Pulsar на кластере KubeSphere. Apache Pulsar, облачный нативный инструмент распределённого обмена сообщениями и потоковой передачи данных, представляет собой передовую платформу для обеспечения нужд предприятий в потоковой передаче событий в реальном времени.

Прежде чем начать


Чтобы установить Pulsar на KubeSphere, необходимо предварительно выполнить следующие действия:


Примечание. Для получения дополнительной информации убедитесь, что ваша среда соответствует предварительным условиям для KubeSphere и Apache Pulsar.

В моей среде я создал кластер Kubernetes с помощью Google Kubernetes Engine. В таблице ниже в качестве примера перечислены машины в моём кластере. Не стесняйтесь настраивать свой кластер в соответствии с собственными потребностями.

IP Хоста Система Версия кластера
10.128.0.5 Ubuntu 20.04.3, 6 виртуальных CPU, 8 Гб ОЗУ Kubernetes 1.21.5, KubeSphere 3.2.1
10.128.0.6 Ubuntu 20.04.3, 6 виртуальных CPU, 8 Гб ОЗУ Kubernetes 1.21.5, KubeSphere 3.2.1
10.128.0.7 Ubuntu 20.04.3, 6 виртуальных CPU, 8 Гб ОЗУ Kubernetes 1.21.5, KubeSphere 3.2.1

Установка Pulsar в качестве шаблона приложения на KubeSphere


KubeSphere может похвастаться высокоинтерактивным и отзывчивым пользовательским интерфейсом, где арендаторы (Tenants) с различными ролями могут напрямую выполнять соответствующие действия. При этом пользователи-администраторы могут выполнять команды с помощью kubectl в веб-терминале, как обычно. В демонстрационных целях я использовал встроенную учётную запись admin на протяжении всех шагов.

Примечание. На самом деле, благодаря многопользовательской системе KubeSphere, вы можете легко установить учётные записи и назначить им роли без ручного создания ресурсов, связанных с управлением доступа на основе ролей (RBAC), таких как объекты Role и RoleBinding. С их наличием каждый пользователь сам выполняет свою работу в кластере, например, добавляет репозитории приложений или непосредственно развёртывает приложения. Ознакомьтесь с этой статьёй быстрого старта в документации KubeSphere, чтобы узнать больше.

Итак, давайте начнём наше путешествие.

  1. Войдите в консоль KubeSphere с учётной записью и паролем по умолчанию (admin/P@88w0rd). Помните, что консольный под (Pod), управляемый развёртыванием (ks-console в пространстве имён kubesphere-systemnamespace), по умолчанию открыт с помощью службы Kubernetes Service c названием ks-console через NodePort. Это означает, что вы можете получить к нему доступ, используя любой IP-адрес узла в вашем кластере с номером порта (порт 30880). Если вы, как и я, используете кластер Kubernetes, размещённый на GKE, рекомендуется изменить тип службы на LoadBalancer. Таким образом, Google автоматически назначит Службе публичный IP-адрес, что поможет направить трафик на Pod более безопасным и надёжным способом.

    image
  2. В консоли KubeSphere перейдите в Access Control (контроль доступа) в разделе Platform (платформа). Это место, где вы управляете всеми рабочими пространствами, учётными записями и ролями платформы. Чтобы управлять ресурсами Pulsar единым образом, сначала создайте рабочее пространство. Как видно из приведённого ниже изображения, в моём кластере уже есть рабочее пространство под названием pulsar.

    image
  3. Щёлкните по рабочему пространству и перейдите к App Repositories (репозиториям приложений) в разделе App Management (управления приложениями). На странице App Repositories перечислены все репозитории, добавленные в выбранное рабочее пространство. Добавьте репозиторий Pulsar, как показано ниже:

    image

    Обратите внимание, что добавление репозитория Pulsar — это только один из нескольких способов установки на KubeSphere. Вы также можете загрузить его Helm чарт файл в качестве независимого шаблона приложения и выпустить его в KubeSphere App Store.
  4. Помимо репозитория, нам также нужны секреты для Pulsar. Хранящиеся в них имя пользователя (pulsar) и пароль (pulsar) могут быть использованы для входа в панель управления Grafana и Pulsar Manager в дальнейшем. Вы можете создавать эти секреты по одному, но я настоятельно советую вам использовать скрипт, предоставленный в документации Pulsar. Склонируйте репозиторий GitHub и запустите скрипт, чтобы автоматически установить эти секреты.

    git clone https://github.com/apache/pulsar-helm-chart
            cd pulsar-helm-chart
            ./scripts/pulsar/prepare_helm_release.sh \
            -n pulsar \
            -k pulsar-mini \
            -c
  5. Приведённые выше команды создают пространство имён под названием pulsar в вашем кластере Kubernetes. Чтобы добавить его в рабочее пространство pulsar, перейдите к Cluster Management (управлению кластерами) в разделе Platform и вручную назначьте его в рабочее пространство.

    image

    Дополнительные сведения см. в разделе Добавление существующих пространств имён Kubernetes в рабочее пространство KubeSphere.
  6. Теперь давайте вернёмся к рабочему пространству pulsar. Мы видим, что пространство имён pulsarnamespace было добавлено. В KubeSphere пространство имён Kubernetes называется KubeSphere project. Щёлкните по нему, чтобы увидеть подробности.

    image
  7. Перейдите в раздел Apps (приложения) и в подраздел Application Workloads (рабочие нагрузки приложений). Нажмите Create (создать) на вкладке Template-Based Apps (приложений на основе шаблонов) и выберите пункт From App Template (из шаблона приложения).

    image
  8. Переключитесь на репозиторий apache, в котором хранится чарт Pulsar Helm.

    image
  9. Щёлкните на Pulsar. На вкладке Chart Files (файлы чартов) мы можем просмотреть конфигурацию непосредственно из консоли. В выпадающем меню справа мы также можем увидеть доступные версии.

    image
  10. Нажмите кнопку Install (установить). На странице Basic Information (базовая информация) введите имя приложения, версию и проект (а именно пространство имён), в котором будет развёрнут Pulsar. Нажмите Next (далее), чтобы продолжить.

    image
  11. На этом шаге отредактируйте файл values.yaml. Когда вы закончите, нажмите кнопку Install. Помните, что при первой установке Pulsar вам необходимо установить значение initialize в true. Эта команда установит и запустит Pulsar.

    image
  12. Дождитесь, пока Pulsar будет запущен. Переключайтесь между разделами Services (службы), Workloads (рабочая нагрузка), Jobs (задания) и Pods, чтобы проверить готовность всех ресурсов.

    image

    image

    image

    image


Использование pulsar-admin для создания арендаторов, пространств имён и топиков Pulsar


pulsar-admin — это инструмент интерфейса командной строки (CLI) для Pulsar. Для создания ресурсов с помощью pulsar-admin можно выполнить следующие действия.

  1. Перейдите в Pod toolset и щёлкните по значку терминала на странице подробностей, чтобы получить доступ к его контейнеру.

    image
  2. Появится терминал, в котором мы можем выполнять команды непосредственно в контейнере Pod. Создайте арендатора с именем apache и перечислите всех арендаторов.

    bin/pulsar-admin tenants create apache
            bin/pulsar-admin tenants list
  3. В контейнере toolset создайте пространство имён с именем pulsar для арендатора apache и перечислите пространства имён арендатора apache, чтобы проверить, успешно ли создано пространство имён.

    bin/pulsar-admin namespaces create apache/pulsar
            bin/pulsar-admin namespaces list apache

    Ожидаемый результат:

    image


Работа с Pulsar Manager


Pulsar Manager — это визуализированный веб-инструмент для управления и мониторинга Pulsar. Чтобы получить доступ к нему, выполните следующие действия.

  1. Перейдите к службе pulsar-manager и откройте её подробную страницу. По умолчанию Pulsar Manager Pod управляется развёртыванием (в моём случае pulsar-mini-pulsar-manager), открываемым службой через LoadBalancer, как показано ниже.

    image
  2. Если вы используете управляемую службу Kubernetes, поставщик назначит ей публичный IP-адрес. Чтобы получить доступ к Pulsar Manager, используйте IP-адрес (35.239.73.28) и порт службы (9527).

    image

    Если для службы LoadBalancer не назначен доступный публичный IP-адрес (это может произойти, если ваш кластер создан на облачных экземплярах непосредственно без балансиров нагрузки или в частной среде), используйте для доступа к Pulsar Manager IP-адрес узла и порт узла. Однако в зависимости от вашей среды может потребоваться настройка соответствующих правил брандмауэра или правил переадресации портов.
  3. Используйте имя пользователя (pulsar) и пароль (pulsar) для входа в Pulsar Manager.

    image
  4. Создавайте необходимую среду.

    image


Подводим итоги


И Apache Pulsar, и KubeSphere могут многое предложить корпоративным пользователям и энтузиастам открытого кода. То, о чём я рассказал в этой статье, служит лишь быстрым стартом для тех, кто хочет получить представление о них. Для того чтобы узнать больше, вы всегда можете заглянуть в их последнюю документацию.

 

 

на главную сниппетов
Курсы