diff --git a/docs/modules/zookeeper/images/zookeeper_overview.drawio.svg b/docs/modules/zookeeper/images/zookeeper_overview.drawio.svg new file mode 100644 index 00000000..2588a67c --- /dev/null +++ b/docs/modules/zookeeper/images/zookeeper_overview.drawio.svg @@ -0,0 +1,4 @@ + + + +
Pod
<name>-node-<rg1>-1
Pod...
ZooKeeper Operator
ZooKeeper Operator
Pod
<name>-node-<rg1>-0
Pod...
ConfigMap
<name>-node-<rg1>
ConfigMap...
ZookeeperCluster
<name>
ZookeeperCluster...
create
create
read
read
Legend
Legend
Operator
Operator
Resource
Resource
Custom
Resource
Custom...
role group
<rg1>
role group...
Pod
<name>-node-<rg2>-0
Pod...
Service
<name>
Service...
role
server
role...
references
references
role group
<rg2>
role group...
StatefulSet
<name>-node-<rg2>
StatefulSet...
ConfigMap
<name>-node-<rg2>
ConfigMap...
StatefulSet
<name>-node-<rg1>
StatefulSet...
Service
<name>-node-<rg1>
Service...
ZNode
<znodename>
ZNode...
ConfigMap
<name>
ConfigMap...
ConfigMap
<znodename>
ConfigMap...
Service
<name>-node-<rg2>
Service...
discovery ConfigMaps:
- for the cluster
- for each ZNode
discovery ConfigMaps:...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/modules/zookeeper/pages/getting_started/first_steps.adoc b/docs/modules/zookeeper/pages/getting_started/first_steps.adoc index f425e7ab..7f4f73c4 100644 --- a/docs/modules/zookeeper/pages/getting_started/first_steps.adoc +++ b/docs/modules/zookeeper/pages/getting_started/first_steps.adoc @@ -18,7 +18,7 @@ The operator will create a ZooKeeper cluster with two replicas. Use kubectl to o [source,bash] include::example$getting_started/code/getting_started.sh[tag=watch-zookeeper-rollout] -The Operator deploys readiness probes to make sure the replicas are ready and established a quorum. Only then will the StefulSet actually be marked as `Ready`. You will see +The Operator deploys readiness probes to make sure the replicas are ready and established a quorum. Only then will the StatefulSet actually be marked as `Ready`. You will see ---- partitioned roll out complete: 2 new pods have been updated... diff --git a/docs/modules/zookeeper/pages/index.adoc b/docs/modules/zookeeper/pages/index.adoc index f6cc658c..f4aced8a 100644 --- a/docs/modules/zookeeper/pages/index.adoc +++ b/docs/modules/zookeeper/pages/index.adoc @@ -1,19 +1,42 @@ = Stackable Operator for Apache ZooKeeper +:description: The Stackable Operator for Apache ZooKeeper is a Kubernetes operator that can manage Apache ZooKeeper ensembles. Learn about its features, resources, dependencies and demos, and see the list of supported ZooKeeper versions. +:keywords: Stackable Operator, Hadoop, Apache ZooKeeper, Kubernetes, k8s, operator, engineer, big data, metadata, storage, cluster -This is an operator for Kubernetes that can manage https://zookeeper.apache.org/[Apache ZooKeeper] ensembles. +The Stackable Operator for Apache ZooKeeper is a Kubernetes Operator for deploying and managing https://zookeeper.apache.org/[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 xref:hbase:index.adoc[Apache HBase], xref:hdfs:index.adoc[Apache Hadoop HDFS], xref:kafka:index.adoc[Apache Kafka] and xref:nifi:index.adoc[Apache NiFi] depend on the ZooKeeper Operator. -WARNING: This operator is part of Stackable Data Platform -and only works with images from the https://repo.stackable.tech/#browse/browse:docker:v2%2Fstackable%2Fzookeeper[Stackable] repository +== Getting started + +Get started with Apache ZooKeeper and the Stackable Operator by following the xref:getting_started/index.adoc[Getting started] guide, it will guide you through the xref:getting_started/installation.adoc[installation] process. Afterwards, consult the xref:usage_guide/index.adoc[Usage guide] to learn more about configuring ZooKeeper for your needs. You can also deploy a <> 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 xref:concepts:roles-and-role-groups.adoc[role] called _server_. + +image::zookeeper_overview.drawio.svg[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 xref:concepts:service_discovery.adoc[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. xref:zookeeper:znodes.adoc[learn more about ZNodes]. + +== Dependencies + +Apache ZooKeeper and the Stackable Operator have no dependencies besides the xref:commons-operator:index.adoc[] and xref:secret-operator:index.adoc[]. + +== [[demos]]Demos + +Apache ZooKeeper is a dependency of xref:hbase:index.adoc[Apache HBase], xref:hdfs:index.adoc[Apache Hadoop HDFS], xref:kafka:index.adoc[Apache Kafka] and xref:nifi:index.adoc[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: + +* xref:stackablectl::demos/data-lakehouse-iceberg-trino-spark.adoc[] +* xref:stackablectl::demos/hbase-hdfs-load-cycling-data.adoc[] +* xref:stackablectl::demos/jupyterhub-pyspark-hdfs-anomaly-detection-taxi-data.adoc[] +* xref:stackablectl::demos/logging.adoc[] +* xref:stackablectl::demos/nifi-kafka-druid-earthquake-data.adoc[] +* xref:stackablectl::demos/nifi-kafka-druid-water-level-data.adoc[] == Supported Versions The Stackable Operator for Apache ZooKeeper currently supports the following versions of ZooKeeper: include::partial$supported-versions.adoc[] - -== Getting the Docker image - -[source] ----- -docker pull docker.stackable.tech/stackable/zookeeper: ----- diff --git a/docs/modules/zookeeper/pages/pod_placement.adoc b/docs/modules/zookeeper/pages/usage_guide/pod_placement.adoc similarity index 100% rename from docs/modules/zookeeper/pages/pod_placement.adoc rename to docs/modules/zookeeper/pages/usage_guide/pod_placement.adoc diff --git a/docs/modules/zookeeper/partials/nav.adoc b/docs/modules/zookeeper/partials/nav.adoc index e27f80b2..8025f40e 100644 --- a/docs/modules/zookeeper/partials/nav.adoc +++ b/docs/modules/zookeeper/partials/nav.adoc @@ -1,12 +1,11 @@ * xref:zookeeper:getting_started/index.adoc[] ** xref:zookeeper:getting_started/installation.adoc[] ** xref:zookeeper:getting_started/first_steps.adoc[] -* xref:zookeeper:configuration.adoc[] -* xref:zookeeper:pod_placement.adoc[] * Concepts ** xref:zookeeper:znodes.adoc[] ** xref:zookeeper:discovery.adoc[] * xref:zookeeper:usage_guide/index.adoc[] +** xref:zookeeper:usage_guide/pod_placement.adoc[] ** xref:zookeeper:usage_guide/encryption.adoc[] ** xref:zookeeper:usage_guide/authentication.adoc[] ** xref:zookeeper:usage_guide/resource_configuration.adoc[] @@ -16,3 +15,4 @@ ** xref:zookeeper:usage_guide/isolating_clients_with_znodes.adoc[] ** xref:zookeeper:usage_guide/configuration_environment_overrides.adoc[] ** xref:zookeeper:usage_guide/cluster_operations.adoc[] +* xref:zookeeper:configuration.adoc[]