ZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. The ZooKeeper operator is a Kubernetes operator that handles the provisioning and management of ZooKeeper clusters. It works by watching custom resources, such as ZookeeperClusters, to provision the underlying Kubernetes resources (StatefulSets) required for a production-ready ZooKeeper Cluster.

Install Zookeeper

Follow these steps to install the ZooKeeper operator in a workspace. This procedure results in a ZooKeeper operator running in a workspace namespace, ready to manage and create ZooKeeper clusters in any project namespaces. See the ZooKeeper in a Project custom resource documentation for more information on creating ZooKeeper clusters.

Only install the ZooKeeper operator once per workspace.

  1. Follow the generic installation instructions for workspace catalog applications on the Application Deployment page.

  2. Within the AppDeployment, update the appRef to specify the correct zookeeper-operator App. You can find the appRef.name by listing the available Apps in the workspace namespace:

    kubectl get apps -n ${WORKSPACE_NAMESPACE}

For details on custom configuration for the operator, please refer to the ZooKeeper operator Helm Chart documentation.

Uninstall via the CLI

Uninstalling the ZooKeeper operator will not directly affect any running ZookeeperClusters. By default, the operator waits for any ZookeeperClusters to be deleted before it will fully uninstall (you can set hooks.delete: true in the application configuration to disable this behavior). After uninstalling the operator, you need to manually clean up any leftover Custom Resource Definitions (CRDs).

  1. Delete all ZookeeperClusters, see Deleting ZooKeeper Clusters.

  2. Uninstall a ZooKeeper operator AppDeployment:

    kubectl -n <workspace namespace> delete AppDeployment <name of AppDeployment>
  3. Remove ZooKeeper CRDs:

    WARNING: Once you remove the CRDs, all deployed ZookeeperClusters will be deleted!

    kubectl delete crds zookeeperclusters.zookeeper.pravega.io