Stackable Operator for Apache ZooKeeper

The Stackable operator for Apache ZooKeeper is a Kubernetes operator for deploying and managing Apache ZooKeeper ensembles. Apache ZooKeeper is an open-source distributed coordination service that facilitates synchronization, configuration management and leader election in distributed systems. ZooKeeper is often used for these tasks in the Apache Hadoop ecosystem. Within the Stackable Platform, the Stackable operators for Apache HBase, Apache Hadoop HDFS, Apache Kafka, Apache NiFi and Apache Druid depend on the ZooKeeper operator.

Getting started

Get started with Apache ZooKeeper and the Stackable operator by following the Getting started guide, it will guide you through the installation process. Afterwards, consult the Usage guide to learn more about configuring ZooKeeper for your needs. You can also deploy a demo to see an example deployment of ZooKeeper together with other data products.

Operator model

The operator manages two custom resources: ZookeeperCluster and ZookeeperZnode. ZooKeeper only has a single process that it runs, so the cluster resource only has a single corresponding role called server.

A diagram depicting the Kubernetes resources created by the Stackable operator for Apache ZooKeeper

For every role group the operator creates a ConfigMap and StatefulSet which can have multiple replicas (Pods). Every role group is accessible through its own Service, and there is a Service for the whole Cluster.

The operator creates a service discovery ConfigMap for the ZooKeeper instance, as well as for each ZNode. The discovery ConfigMaps contain information on how to connect to ZooKeeper. The ZNode discovery ConfigMap give access information for the ZNode. Learn more about ZNodes.

Dependencies

Apache ZooKeeper and the Stackable operator have no dependencies besides the Stackable Commons Operator, Stackable Secret Operator and Stackable Listener Operator.

Demos

Apache ZooKeeper is a dependency of Apache HBase, Apache Hadoop HDFS, Apache Kafka and Apache NiFi, thus any demo that uses one or more of these components will also deploy a ZooKeeper ensemble. Here is the list of the demos that include ZooKeeper:

Supported versions

The Stackable operator for Apache ZooKeeper currently supports the ZooKeeper versions listed below. To use a specific ZooKeeper version in your ZookeeperCluster, you have to specify an image - this is explained in the Product image selection documentation. The operator also supports running images from a custom registry or running entirely customized images; both of these cases are explained under Product image selection as well.

  • 3.9.2

  • 3.8.3 (deprecated)

  • 3.8.4 (LTS)