Support for native coordination on Kubernetes
- 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
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