Apache Pulsar — это распределенная платформа для обмена сообщениями и потоковой обработки данных. Она используется для построения event-driven-архитектур, очередей, стриминга логов и интеграции микросервисов.
В панели управления кластером вы можете развернуть Apache Pulsar как готовый аддон, и в кластере автоматически создадутся все необходимые компоненты: брокеры сообщений, хранилище данных, координаторы, прокси и система мониторинга.
Установка
Перед установкой Apache Pulsar убедитесь, что в кластере установлены:
-
CSI-driver — обязателен, используется для подключения сетевых дисков к BookKeeper и ZooKeeper.
-
Достаточное количество воркер-нод — по умолчанию кластер создается как отказоустойчивое решение. Для запуска необходимо не менее 4 воркер-нод с характеристиками: 4 CPU, 8 ГБ RAM, 120 ГБ NVMe.
Для установки откройте раздел «Дополнения» в панели управления кластера и выберите «Apache Pulsar».

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

Для доступа к 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» можно просматривать состояние кластера и поток сообщений в реальном времени.
