Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Apache Pulsar

Apache Pulsar — это распределенная платформа для обмена сообщениями и потоковой обработки данных. Она используется для построения event-driven-архитектур, очередей, стриминга логов и интеграции микросервисов.

В панели управления кластером вы можете развернуть Apache Pulsar как готовый аддон, и в кластере автоматически создадутся все необходимые компоненты: брокеры сообщений, хранилище данных, координаторы, прокси и система мониторинга.

Установка

Перед установкой Apache Pulsar убедитесь, что в кластере установлены:

  • CSI-driver — обязателен, используется для подключения сетевых дисков к BookKeeper и ZooKeeper.

  • Достаточное количество воркер-нод — по умолчанию кластер создается как отказоустойчивое решение. Для запуска необходимо не менее 4 воркер-нод с характеристиками: 4 CPU, 8 ГБ RAM, 120 ГБ NVMe.

Для установки откройте раздел «Дополнения» в панели управления кластера и выберите «Apache Pulsar».

Scr 20251229 Kssv

В открывшемся окне вы можете установить переключатель «Продвинутая установка» для редактирования параметров установки. Для тестирования можно оставить значения по умолчанию и нажать «Установить».

Scr 20251229 Ktar

Для доступа к Grafana в настройках необходимо установить пароль. Укажите его в разделе:

    
grafana: enabled: true adminPassword: "password"

При использовании параметров по умолчанию будут развернуты:

  • ZooKeeper — координатор кластера;

  • BookKeeper — распределенное хранилище сообщений;

  • Pulsar Broker — обработка и маршрутизация сообщений;

  • Pulsar Proxy — точка входа для клиентов;

  • Recovery — восстановление реплик данных;

  • VictoriaMetrics и Grafana — мониторинг кластера.

Настройка параметров

Основные компоненты

Состав кластера задается в блоке components:

    
components: zookeeper: true bookkeeper: true broker: true proxy: true autorecovery: true toolset: true

Здесь можно включать или отключать отдельные сервисы Pulsar. Например, для тестового окружения можно оставить только ZooKeeper, BookKeeper, Broker и Proxy.

Количество реплик

Основные сервисы масштабируются через параметры replicaCount:

    
zookeeper: replicaCount: 3 bookkeeper: replicaCount: 4 broker: replicaCount: 3 proxy: replicaCount: 3
  • ZooKeeper отвечает за координацию и должен иметь нечетное количество реплик.

  • BookKeeper хранит данные сообщений и определяет отказоустойчивость кластера.

  • Broker и Proxy масштабируются для распределения нагрузки между клиентами.

Хранилище данных

Pulsar использует сетевые диски для хранения всех сообщений. Томами управляют StatefulSet ZooKeeper и BookKeeper.

Пример PVC для BookKeeper:

    
volumes: ledgers: size: 50Gi storageClassName: nvme.network-drives.csi.timeweb.cloud

Пример PVC для ZooKeeper:

    
zookeeper: volumes: data: size: 20Gi datalog: size: 20Gi

Все тома создаются с классом nvme.network-drives.csi.timeweb.cloud. При необходимости его можно заменить на другой тип хранилища.

Сетевые диски появятся в панели управления в разделе «Сетевые диски» и будут использоваться для сохранения данных при перезапуске подов.

Мониторинг

Аддон автоматически устанавливает стек мониторинга VictoriaMetrics и Grafana:

    
victoria-metrics-k8s-stack: enabled: true grafana: enabled: true

В Grafana уже созданы дашборды Pulsar, показывающие:

  • количество сообщений;
  • нагрузку на брокеры;
  • задержки доставки;
  • использование дисков BookKeeper.

После установки

Проверьте состояние подов:

    
kubectl get pods -n pulsar

В рабочем состоянии вы увидите:

  • несколько подов pulsar-zookeeper-*;
  • несколько подов pulsar-bookie-*;
  • pulsar-broker-* и pulsar-proxy-*;
  • поды мониторинга.

Пример вывода:

    
NAME READY STATUS RESTARTS AGE pulsar-bookie-0 1/1 Running 0 22h pulsar-bookie-1 1/1 Running 0 22h pulsar-bookie-2 1/1 Running 0 22h pulsar-bookie-3 1/1 Running 0 22h pulsar-bookie-init-24vrn 0/1 Completed 1 22h pulsar-broker-0 1/1 Running 0 22h pulsar-broker-1 1/1 Running 0 22h pulsar-broker-2 1/1 Running 0 22h pulsar-grafana-5b6cf7bb7b-vktzm 1/1 Running 0 22h pulsar-kube-state-metrics-55947c98cd-jkk6t 1/1 Running 0 22h pulsar-prometheus-node-exporter-9r8jj 1/1 Running 0 22h pulsar-prometheus-node-exporter-d8s2d 1/1 Running 0 22h pulsar-prometheus-node-exporter-gh895 1/1 Running 0 22h pulsar-prometheus-node-exporter-mhbc4 1/1 Running 0 22h pulsar-proxy-0 1/1 Running 0 22h pulsar-proxy-1 1/1 Running 0 22h pulsar-proxy-2 1/1 Running 0 22h pulsar-pulsar-init-rwlwh 0/1 Completed 0 22h pulsar-recovery-0 1/1 Running 0 22h pulsar-toolset-0 1/1 Running 0 22h pulsar-victoria-metrics-operator-84bd8795f6-fjwrm 1/1 Running 0 22h pulsar-zookeeper-0 1/1 Running 0 22h pulsar-zookeeper-1 1/1 Running 0 22h pulsar-zookeeper-2 1/1 Running 0 22h vmagent-pulsar-victoria-metrics-k8s-stack-5897fbdbdb-dnv9l 2/2 Running 0 22h vmsingle-pulsar-victoria-metrics-k8s-stack-bcdcb4884-fbccc 1/1 Running 0 22h

Доступ к Grafana

Чтобы открыть Grafana, выполните:

    
kubectl port-forward -n pulsar svc/pulsar-grafana 3000:80

После этого Grafana будет доступна по адресу http://localhost:3000.

В разделе «Dashboards» → «Pulsar» можно просматривать состояние кластера и поток сообщений в реальном времени.

Scr 20251229 Maep

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев