From 79f778b65e624a039e24119d5f13b7910aee3b39 Mon Sep 17 00:00:00 2001 From: mohin7 Date: Thu, 4 Jul 2024 15:51:14 +0600 Subject: [PATCH] Add ZooKeeper article Signed-off-by: mohin7 --- .../hero.jpg | Bin 0 -> 75474 bytes .../index.md | 176 ++++++++++++++++++ .../hero.jpg | Bin 87650 -> 87572 bytes 3 files changed, 176 insertions(+) create mode 100644 content/articles/deploy-zookeeper-using-kubernetes-zooKeeper-operator/hero.jpg create mode 100644 content/articles/deploy-zookeeper-using-kubernetes-zooKeeper-operator/index.md diff --git a/content/articles/deploy-zookeeper-using-kubernetes-zooKeeper-operator/hero.jpg b/content/articles/deploy-zookeeper-using-kubernetes-zooKeeper-operator/hero.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0c5ad62565036e640dbca01333ef6c855bc9d6c7 GIT binary patch literal 75474 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 literal 0 HcmV?d00001 diff --git a/content/articles/deploy-zookeeper-using-kubernetes-zooKeeper-operator/index.md b/content/articles/deploy-zookeeper-using-kubernetes-zooKeeper-operator/index.md new file mode 100644 index 0000000000..328e48af3b --- /dev/null +++ b/content/articles/deploy-zookeeper-using-kubernetes-zooKeeper-operator/index.md @@ -0,0 +1,176 @@ +--- +title: Deploy ZooKeeper using Kubernetes ZooKeeper Operator +Description: Improve database management and performance with Kubernetes Zookeeper Operator. Learn how to boost efficiency using Zookeeper in Kubernetes. +alt: Kubernetes ZooKeeper +date: "2024-06-28" +--- + +# Deploy ZooKeeper using Kubernetes ZooKeeper Operator + +![Kubernetes ZooKeeper](./hero.jpg "Kubernetes ZooKeeper") + +Kubernetes has revolutionized the landscape of containerized applications, simplifying the complexities associated with managing them. At its core, Kubernetes empowers users to effortlessly deploy, scale, and manage applications – regardless of whether they reside on a single machine or spread across a multi-cloud environment. + +Kubernetes streamlines and automates critical tasks such as load balancing, real-time demand-based scaling, and guaranteeing application resilience through self-healing mechanisms. Through a user-friendly, declarative configuration approach, users specify their desired application configuration, and Kubernetes handles the execution. This frees developers to focus on developing exceptional applications while Kubernetes ensures they run smoothly and efficiently. In essence, Kubernetes equips users to effortlessly navigate the challenges of modern application deployment. + +The Kubernetes ZooKeeper Operator, extends the Kubernetes API through a custom resource definition (CRD) tailored for ZooKeeper. By leveraging the Operator, you can effortlessly deploy, manage, and scale ZooKeeper instances within your Kubernetes ecosystem. This guide dives into the advantages, functionalities, and steps involved in deploying ZooKeeper using the Kubernetes ZooKeeper Operator. By adopting this approach, you can achieve a dynamic and efficient strategy for deploying and managing ZooKeeper on Kubernetes. + +## Advantage of ZooKeeper in Kubernetes + +ZooKeeper, a cornerstone of distributed systems, excels at providing a centralized service for coordinating and managing distributed applications. It offers a robust and scalable solution for crucial tasks like distributed locking, leader election, service discovery, and configuration management. + +As a distributed service, it thrives in Kubernetes environments. Inherent scalability of Kubernetes perfectly complements ZooKeeper's ability to handle growing workloads. This integration simplifies management by providing a centralized platform to deploy, manage, and monitor ZooKeeper alongside your containerized applications. + +Integrating ZooKeeper with Kubernetes offers several benefits. The Kubernetes ZooKeeper Operator streamlines deployment and configuration. This means you can ignore manual processes and manage ZooKeeper instances centrally within Kubernetes. Kubernetes inherently scales applications based on demand, and this seamlessly extends to ZooKeeper, ensuring it can handle growing workloads. Additionally, leveraging Kubernetes self-healing capabilities makes ZooKeeper deployments more resilient. In the event of an instance failure, Kubernetes automatically restarts the ZooKeeper pod, minimizing disruption to your distributed systems. The integration also aligns perfectly with DevOps principles by facilitating smoother development and testing workflows. Deploying and managing ZooKeeper alongside your containerized applications becomes a unified process within the Kubernetes ecosystem. By combining Kubernetes ZooKeeper together, you gain a powerful and dynamic solution for managing distributed systems within modern containerized environments. + +## Deploy ZooKeeper on Kubernetes +### Pre-requisites +Before deploying ZooKeeper on Kubernetes, ensure you have a functional Kubernetes cluster and a basic understanding of ZooKeeper. Here, we'll assume you've already set up your cluster. Here we are using [Kind](https://kubernetes.io/docs/tasks/tools/#kind) to set up our Kubernetes cluster. Additionally, you'll need [Helm](https://helm.sh/docs/intro/install/) installed on your Kubernetes cluster. + +In this tutorial, We will use the Kubernetes ZooKeeper operator KubeDB to deploy ZooKeeper on Kubernetes. First, we need to install KubeDB on our Kubernetes cluster, which requires a license. You can obtain a free license from the [Appscode License Server](https://appscode.com/issue-license/). To get a license, use your Kubernetes cluster ID. Run the following command to retrieve your cluster ID. + + +```bash +$ kubectl get ns kube-system -o jsonpath='{.metadata.uid}' +de1c6058-fa66-4d22-a7ae-d17e221c1533 +``` + +The license server will email us with a "license.txt" file attached after we provide the necessary data. Run the following commands listed below to install KubeDB. + +```bash +$ helm install kubedb oci://ghcr.io/appscode-charts/kubedb \ + --version v2024.6.4 \ + --namespace kubedb --create-namespace \ + --set-file global.license=/path/to/the/license.txt \ + --set global.featureGates.ZooKeeper=true \ + --wait --burst-limit=10000 --debug +``` + +Verify the installation by the following command, + +```bash +$ kubectl get pods --all-namespaces -l "app.kubernetes.io/instance=kubedb" +NAMESPACE NAME READY STATUS RESTARTS AGE +kubedb kubedb-kubedb-autoscaler-fbf8b5b9d-b5n5l 1/1 Running 0 5m12s +kubedb kubedb-kubedb-ops-manager-7c647868b9-wf58f 1/1 Running 0 5m12s +kubedb kubedb-kubedb-provisioner-f4569f959-krjft 1/1 Running 0 5m12s +kubedb kubedb-kubedb-webhook-server-7787b4c494-6qktv 1/1 Running 0 5m12s +kubedb kubedb-petset-operator-54877fd499-kngl8 1/1 Running 0 5m12s +kubedb kubedb-petset-webhook-server-54c9ccbf89-t8mt8 2/2 Running 0 5m12s +kubedb kubedb-sidekick-5d9947bd9-q2gkx 1/1 Running 0 5m12s +``` +We can go on to the next stage if every pod status is running. + +## Create a Namespace +Now we'll create a new namespace in which we will deploy ZooKeeper. To create a namespace, we can use the following command: + +```bash +$ kubectl create namespace demo +namespace/demo created +``` + + +## Deploy ZooKeeper using Kubernetes ZooKeeper operator +We need to create a yaml manifest to deploy ZooKeeper on Kubernetes. And we will apply this yaml below, + +```yaml +apiVersion: kubedb.com/v1alpha2 +kind: ZooKeeper +metadata: + name: zookeeper + namespace: demo +spec: + version: "3.9.1" + adminServerPort: 8080 + replicas: 3 + storage: + resources: + requests: + storage: "1Gi" + storageClassName: "gp2" + accessModes: + - ReadWriteOnce + deletionPolicy: "WipeOut" +``` + +Let's save this yaml configuration into `zookeeper.yaml` +Then create the above ZooKeeper CRO, + +```bash +$ kubectl apply -f zookeeper.yaml +zookeeper.kubedb.com/zookeeper created +``` +In this yaml, +* `spec.version` field specifies the version of ZooKeeper Here, we are using ZooKeeper `version 3.9.1`. You can list the KubeDB supported versions of ZooKeeper by running `$ kubectl get zookeeperversions` command. +* `spec.storage` specifies PVC spec that will be dynamically allocated to store data for this database. This storage spec will be passed to the StatefulSet created by KubeDB operator to run database pods. You can specify any StorageClass available in your cluster with appropriate resource requests. +* And the `spec.deletionPolicy` field is *Wipeout* means that the database will be deleted without restrictions. It can also be "Halt", "Delete" and "DoNotTerminate". + +Once these are handled correctly and the ZooKeeper object is deployed, you will see that the following objects are created: + +```bash +$ kubectl get all -n demo +NAME READY STATUS RESTARTS AGE +pod/zookeeper-0 1/1 Running 0 3m28s +pod/zookeeper-1 1/1 Running 0 86s +pod/zookeeper-2 1/1 Running 0 78s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/zookeeper ClusterIP 10.96.106.95 2181/TCP 3m36s +service/zookeeper-admin-server ClusterIP 10.96.58.77 8080/TCP 3m36s +service/zookeeper-pods ClusterIP None 2181/TCP,2888/TCP,3888/TCP 3m36s + +NAME TYPE VERSION AGE +appbinding.appcatalog.appscode.com/zookeeper kubedb.com/zookeeper 3.9.1 3m36s +``` +We have successfully deployed ZooKeeper to Kubernetes using the Kubernetes ZooKeeper operator. Now, we will exec into the ZooKeeper pod to create some sample node and verify whether our ZooKeeper is usable or not. Before connect to the ZooKeeper pod let’s check if the ZooKeeper is ready to use, + +```bash +$ kubectl get zookeeper -n demo zookeeper +NAME TYPE VERSION STATUS AGE +zookeeper kubedb.com/v1alpha2 3.9.1 Ready 4m37s +``` + +### Create Sample Node + +In this section, we are going to exec into our ZooKeeper pod and create a sample node. + +```bash +$ kubectl exec -it -n demo zookeeper-0 -- sh + +$ echo ruok | nc localhost 2181 +imok + +$ zkCli.sh create /product kubedb +Connecting to localhost:2181 +... +Connection Log Messeges +... +Created /product + +$ zkCli.sh get /product +Connecting to localhost:2181 +... +Connection Log Messeges +... +kubedb +``` + +> We’ve successfully deployed ZooKeeper to Kubernetes using the Kubernetes ZooKeeper operator KubeDB. Also, we successfully accessed ZooKeeper and created a sample ZooKeeper node. + + +## ZooKeeper on Kubernetes: Best Practices +To guarantee the smooth operation of your ZooKeeper applications within Kubernetes, consider implementing these best practices: + +* **Configuration Management:** Leverage Kubernetes ConfigMaps to store ZooKeeper configuration files for easier management and updates. Utilize Secrets for secure handling of sensitive information like ZooKeeper server credentials. Implement dynamic configuration reloading to apply changes without downtime, maintaining continuous availability. + +* **Resource Management:** Unlike applications with varying resource demands, ZooKeeper tends to have a more predictable resource footprint. Analyze your ZooKeeper workload to determine appropriate CPU and memory requests and limits for its pods. This ensures ZooKeeper receives sufficient resources without overprovisioning that could waste cluster resources. + +* **Networking & Security:** Use Kubernetes Services to expose ZooKeeper to other pods in the environment. Use ClusterIP services for internal communication within the cluster. For external access, utilize NodePort or LoadBalancer services with appropriate security controls. Implement Network Policies to restrict traffic flow and ensure only authorized pods can communicate with ZooKeeper, enhancing security. Leverage Role-Based Access Control (RBAC) to restrict access to ZooKeeper resources and Pod Security Policies to enforce security standards like running containers as non-root users and preventing privileged escalation. Secure communication between ZooKeeper instances and other components by enabling TLS encryption. This protects data in transit within the cluster. + +* **Utilizing the Kubernetes ZooKeeper Operator:** Consider using the Kubernetes ZooKeeper Operator for simplified deployment and management. The operator automates administrative tasks and simplifies configuration and scaling. This allows for easier deployment and management of ZooKeeper instances, optimizing performance and reducing manual workload for administrators. + +## Conclusion + +In conclusion, ZooKeeper has emerged as a powerful tool for coordinating and managing distributed applications within Kubernetes environments. Its core functionalities, including distributed locking, leader election, service discovery, and configuration management, provide a robust foundation for building resilient and scalable distributed systems. This guide has equipped you with the knowledge to deploy ZooKeeper on Kubernetes, leveraging the benefits of the Kubernetes ZooKeeper Operator for simplified management. For a deeper dive into implementing ZooKeeper with Kubernetes, the official [ZooKeeper documentation](https://zookeeper.apache.org/documentation.html) offers comprehensive resources. Remember, achieving optimal performance and reliability within your distributed system requires ongoing optimization and a strong understanding of ZooKeeper best practices. Additionally, expertise from managed Kubernetes service providers like KubeDB can be valuable in ensuring your ZooKeeper deployment maintains high availability and performance. + + diff --git a/content/articles/how-to-deploy-rabbitmq-using-kubernetes-rabbitmq-operator/hero.jpg b/content/articles/how-to-deploy-rabbitmq-using-kubernetes-rabbitmq-operator/hero.jpg index b84fb582de4bb708690bd7932a00b5cf0dbd5bca..f4504d47a53a919b45a43caffa7d97a5bfc33694 100644 GIT binary patch delta 17972 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 delta 18048 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 N0XUOSlMDj^|Ji<*yH@}J