apache / apache/pulsar

Support for native coordination on Kubernetes

Open
#23,539 5 comments 0 reactions 0 assignees View on GitHub
type/enhancement
Dominant language
Java
Stars
15.3k
Forks
3.8k
Avg merge
1d 14h
Merged PRs (30d)
160

Description

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/pulsar/issues) and found nothing similar.

### Motivation

Pulsar now has a pluggable interface for coordination and metadata services, see #572 which was resolved through [PIP-45](https://github.com/apache/pulsar/wiki/PIP-45:-Pluggable-metadata-interface).

In Apache NiFi, they've done something similar but thus far targeting the services offered already by Kubernetes, namely the [Lease API](https://kubernetes.io/docs/concepts/architecture/leases/) and [ConfigMaps](https://kubernetes.io/docs/concepts/configuration/configmap/):

https://exceptionfactory.com/posts/2024/08/10/bringing-kubernetes-clustering-to-apache-nifi/

Being internally based currently on etcd, this should perform similarly.

The [motivation](https://www.slideshare.net/slideshow/towards-a-zookeeperless-pulsar-etcd-etcd-etcd-pulsar-summit-sf-2022/254531636#3) presented at the Pulsar Summit in 2022 applies even more so here:

Small clusters → remove overhead
- Less components to deploy
- Easier operations

### Solution

Include a coordination and metadata backend that uses native Kubernetes services.

### Alternatives

In the past, people have written proxies that surface for example the ZooKeeper API on top of etcd, see [zetcd](https://github.com/etcd-io/zetcd). It could be argued that an entirely separated service should be written that standardizes the use of Kubernetes services for leader election and metadata needs.

### Anything else?

_No response_

### Are you willing to submit a PR?

- [ ] I'm willing to submit a PR!

Contributor guide

Open the contributing guide

Research direction

Start by reading PIP-45 and the existing pluggable coordination and metadata interfaces referenced in the issue. Then compare the Kubernetes Lease API and ConfigMaps with Pulsar’s coordination and metadata needs. Done means a native Kubernetes-backed coordination and metadata backend is defined and integrated.

Written by the indexing model from the issue text.

Assessment

Tech stack
kubernetes
Domain
distributed-systems, infrastructure
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.