helm deploys zookeeper

basic information:

Helm v3.12.3

Kubernetes v1.28.0

Containerd.io 1.6.22

The following is the process of practicing using helm to install, upgrade, rollback, and uninstall zookeeper for reference.

1. helm adds BitNami warehouse

helm repo add bitnami https://charts.bitnami.com/bitnami

zhangzk@k8smaster:~$ helm repo add bitnami https://charts.bitnami.com/bitnami
"bitnami" has been added to your repositories

2. View zookeeper’s chart

  helm search repo zookeeper

zhangzk@k8smaster:~$ helm search repo zookeeper
NAME                            CHART VERSION   APP VERSION     DESCRIPTION                                       
bitnami/zookeeper               12.1.0          3.9.0           Apache ZooKeeper provides a reliable, centraliz...
bitnami/dataplatform-bp2        12.0.5          1.0.1           DEPRECATED This Helm chart can be used for the ...
bitnami/kafka                   25.1.0          3.5.1           Apache Kafka is a distributed streaming platfor...
bitnami/schema-registry         13.1.0          7.4.1           Confluent Schema Registry provides a RESTful in...
bitnami/solr                    8.0.0           9.3.0           Apache Solr is an extremely powerful, open sour...

3. Pull the chart to local

  helm pull bitnami/zookeeper

zhangzk@k8smaster:~/helm$ helm pull bitnami/zookeeper
zhangzk@k8smaster:~/helm$ ll
total 52
drwxrwxr-x 2 zhangzk zhangzk  4096 Aug 25 10:17 ./
drwxr-x--- 8 zhangzk zhangzk  4096 Aug 25 10:17 ../
-rw-r--r-- 1 zhangzk zhangzk 42792 Aug 25 10:17 zookeeper-12.1.0.tgz

4. Modify values.yaml

  Unzip zookeeper-12.1.0.tgz

zhangzk@k8smaster:~/helm$ tar -zxvf zookeeper-12.1.0.tgz 
zhangzk@k8smaster:~/helm$ cd zookeeper
zhangzk@k8smaster:~/helm/zookeeper$ ll
total 124
drwxrwxr-x 4 zhangzk zhangzk  4096 Aug 25 10:18 ./
drwxrwxr-x 3 zhangzk zhangzk  4096 Aug 25 10:18 ../
-rw-r--r-- 1 zhangzk zhangzk   333 Aug 22 22:43 .helmignore
-rw-r--r-- 1 zhangzk zhangzk   226 Aug 22 22:43 Chart.lock
-rw-r--r-- 1 zhangzk zhangzk   845 Aug 22 22:43 Chart.yaml
-rw-r--r-- 1 zhangzk zhangzk 60180 Aug 22 22:43 README.md
drwxrwxr-x 3 zhangzk zhangzk  4096 Aug 25 10:18 charts/
drwxrwxr-x 2 zhangzk zhangzk  4096 Aug 25 10:18 templates/
-rw-r--r-- 1 zhangzk zhangzk 36205 Aug 22 22:43 values.yaml

Modify the values.yaml file

Modification point 1: Close persistent data

## Enable persistence using Persistent Volume Claims
## ref: https://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
  ## @param persistence.enabled Enable ZooKeeper data persistence using PVC. If false, use emptyDir
  ##
  enabled: false

Modification point 2: modified to 3 copies

## @param replicaCount Number of ZooKeeper nodes
##
replicaCount: 3

5. Helm installs zookeeper into the public-service namespace

   kubectl create ns public-service

  helm install zookeeper -n public-service .

zhangzk@k8smaster:~/helm/zookeeper$ kubectl create ns public-service
namespace/public-service created
zhangzk@k8smaster:~/helm/zookeeper$ helm install zookeeper -n public-service .
NAME: zookeeper
LAST DEPLOYED: Fri Aug 25 10:39:05 2023
NAMESPACE: public-service
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
CHART NAME: zookeeper
CHART VERSION: 12.1.0
APP VERSION: 3.9.0

** Please be patient while the chart is being deployed **

ZooKeeper can be accessed via port 2181 on the following DNS name from within your cluster:

    zookeeper.public-service.svc.cluster.local

To connect to your ZooKeeper server run the following commands:

    export POD_NAME=$(kubectl get pods --namespace public-service -l "app.kubernetes.io/name=zookeeper,app.kubernetes.io/instance=zookeeper,app.kubernetes.io/component=zookeeper" -o jsonpath="{.items[0].metadata.name}")
    kubectl exec -it $POD_NAME -- zkCli.sh

To connect to your ZooKeeper server from outside the cluster execute the following commands:

    kubectl port-forward --namespace public-service svc/zookeeper 2181:2181 &
    zkCli.sh 127.0.0.1:2181

6. Check the status of Pod

   kubectl get po -n public-service

zhangzk@k8smaster:~/helm/zookeeper$ kubectl get po -n public-service
NAME          READY   STATUS    RESTARTS   AGE
zookeeper-0   1/1     Running   0          102m
zookeeper-1   1/1     Running   0          102m
zookeeper-2   1/1     Running   0          102m

7. Check node status

kubectl exec zookeeper-0 -n public-service /opt/bitnami/zookeeper/bin/zkServer.sh status

zhangzk@k8smaster:~/helm/zookeeper$ kubectl exec zookeeper-0 -n public-service  /opt/bitnami/zookeeper/bin/zkServer.sh status
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
/opt/bitnami/java/bin/java
ZooKeeper JMX enabled by default
Using config: /opt/bitnami/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

8. Upgrade version upgrade

Modify the replicaCount of the values.yaml file to 1 and save it

## @param replicaCount Number of ZooKeeper nodes
##
replicaCount: 1

  Then execute the following command: helm upgrade -n public-service zookeeper.

zhangzk@k8smaster:~/helm/zookeeper$ helm upgrade -n public-service zookeeper .
Release "zookeeper" has been upgraded. Happy Helming!
NAME: zookeeper
LAST DEPLOYED: Fri Aug 25 14:40:05 2023
NAMESPACE: public-service
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
CHART NAME: zookeeper
CHART VERSION: 12.1.0
APP VERSION: 3.9.0

** Please be patient while the chart is being deployed **

ZooKeeper can be accessed via port 2181 on the following DNS name from within your cluster:

    zookeeper.public-service.svc.cluster.local

To connect to your ZooKeeper server run the following commands:

    export POD_NAME=$(kubectl get pods --namespace public-service -l "app.kubernetes.io/name=zookeeper,app.kubernetes.io/instance=zookeeper,app.kubernetes.io/component=zookeeper" -o jsonpath="{.items[0].metadata.name}")
    kubectl exec -it $POD_NAME -- zkCli.sh

To connect to your ZooKeeper server from outside the cluster execute the following commands:

    kubectl port-forward --namespace public-service svc/zookeeper 2181:2181 &
    zkCli.sh 127.0.0.1:2181

Check the pod again and find that there is only one pod: kubectl get po -n public-service

zhangzk@k8smaster:~/helm/zookeeper$ kubectl get po -n public-service
NAME          READY   STATUS    RESTARTS   AGE
zookeeper-0   1/1     Running   0          20s

9. Rollback version

1) View release history: helm history zookeeper -n public-service

zhangzk@k8smaster:~/helm/zookeeper$ helm history zookeeper -n public-service
REVISION        UPDATED                         STATUS          CHART                   APP VERSION     DESCRIPTION     
1               Fri Aug 25 12:40:59 2023        superseded      zookeeper-12.1.0        3.9.0           Install complete
2               Fri Aug 25 14:40:05 2023        deployed        zookeeper-12.1.0        3.9.0           Upgrade complete

2) Rollback to version 1: helm rollback zookeeper 1 -n public-service

hangzk@k8smaster:~/helm/zookeeper$ helm rollback zookeeper 1 -n public-service
Rollback was a success! Happy Helming!

3) Check the pod again and find that it has changed to 3 pods: kubectl get po -n public-service

zhangzk@k8smaster:~/helm/zookeeper$ kubectl get po -n public-service
NAME          READY   STATUS    RESTARTS   AGE
zookeeper-0   1/1     Running   0          30m
zookeeper-1   1/1     Running   0          31m
zookeeper-2   1/1     Running   0          31m

10. Uninstall release

  helm uninstall zookeeper -n public-service

zhangzk@k8smaster:~/helm/zookeeper$ helm uninstall zookeeper -n public-service
release "zookeeper" uninstalled

Guess you like

Origin blog.csdn.net/zhangzhaokun/article/details/132496851