From 51601168e4a7f8b13f6da1240b021968917afe8b Mon Sep 17 00:00:00 2001 From: Armin Felder Date: Tue, 17 Sep 2024 20:17:50 +0200 Subject: [PATCH] use ruok command, for zookeeper probes, like in https://kubernetes.io/docs/tutorials/stateful-application/zookeeper/ --- azure/microservices/thirdparty.yml | 29 +++++++++++++++++++++++------ gcp/microservices/thirdparty.yml | 29 +++++++++++++++++++++++------ minikube/thirdparty.yml | 29 +++++++++++++++++++++++------ openshift/thirdparty.yml | 29 +++++++++++++++++++++++------ 4 files changed, 92 insertions(+), 24 deletions(-) diff --git a/azure/microservices/thirdparty.yml b/azure/microservices/thirdparty.yml index 9f15a6b..ec4a920 100644 --- a/azure/microservices/thirdparty.yml +++ b/azure/microservices/thirdparty.yml @@ -37,6 +37,7 @@ data: server.0=zookeeper-0.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 server.1=zookeeper-1.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 server.2=zookeeper-2.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 + 4lw.commands.whitelist=ruok log4j.properties: |+ zookeeper.root.logger=INFO, CONSOLE zookeeper.console.threshold=INFO @@ -45,6 +46,14 @@ data: log4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold} log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n + zookeeper-ready.sh: | + #!/bin/bash + OK=$(echo ruok | nc 127.0.0.1 $1) + if [ "$OK" == "imok" ]; then + exit 0 + else + exit 1 + fi --- apiVersion: apps/v1 kind: StatefulSet @@ -83,13 +92,21 @@ spec: memory: 800Mi command: ["/conf/start-node.sh"] readinessProbe: - periodSeconds: 60 - tcpSocket: - port: 2181 + exec: + command: + - sh + - -c + - "/conf/zookeeper-ready.sh 2181" + initialDelaySeconds: 10 + timeoutSeconds: 5 livenessProbe: - periodSeconds: 60 - tcpSocket: - port: 2181 + exec: + command: + - sh + - -c + - "/conf/zookeeper-ready.sh 2181" + initialDelaySeconds: 10 + timeoutSeconds: 5 env: - name: JVMFLAGS value: "-Dzookeeper.electionPortBindRetry=0" diff --git a/gcp/microservices/thirdparty.yml b/gcp/microservices/thirdparty.yml index 2dcce25..1b9f918 100644 --- a/gcp/microservices/thirdparty.yml +++ b/gcp/microservices/thirdparty.yml @@ -37,6 +37,7 @@ data: server.0=zookeeper-0.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 server.1=zookeeper-1.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 server.2=zookeeper-2.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 + 4lw.commands.whitelist=ruok log4j.properties: |+ zookeeper.root.logger=INFO, CONSOLE zookeeper.console.threshold=INFO @@ -45,6 +46,14 @@ data: log4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold} log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n + zookeeper-ready.sh: | + #!/bin/bash + OK=$(echo ruok | nc 127.0.0.1 $1) + if [ "$OK" == "imok" ]; then + exit 0 + else + exit 1 + fi --- apiVersion: apps/v1 kind: StatefulSet @@ -85,13 +94,21 @@ spec: memory: 800Mi command: ["/conf/start-node.sh"] readinessProbe: - periodSeconds: 60 - tcpSocket: - port: 2181 + exec: + command: + - sh + - -c + - "/conf/zookeeper-ready.sh 2181" + initialDelaySeconds: 10 + timeoutSeconds: 5 livenessProbe: - periodSeconds: 60 - tcpSocket: - port: 2181 + exec: + command: + - sh + - -c + - "/conf/zookeeper-ready.sh 2181" + initialDelaySeconds: 10 + timeoutSeconds: 5 env: - name: JVMFLAGS value: "-Dzookeeper.electionPortBindRetry=0" diff --git a/minikube/thirdparty.yml b/minikube/thirdparty.yml index 8ff8a64..8aafb7b 100644 --- a/minikube/thirdparty.yml +++ b/minikube/thirdparty.yml @@ -37,6 +37,7 @@ data: server.0=zookeeper-0.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 server.1=zookeeper-1.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 server.2=zookeeper-2.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 + 4lw.commands.whitelist=ruok log4j.properties: |+ zookeeper.root.logger=INFO, CONSOLE zookeeper.console.threshold=INFO @@ -45,6 +46,14 @@ data: log4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold} log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n + zookeeper-ready.sh: | + #!/bin/bash + OK=$(echo ruok | nc 127.0.0.1 $1) + if [ "$OK" == "imok" ]; then + exit 0 + else + exit 1 + fi --- apiVersion: apps/v1 kind: StatefulSet @@ -76,13 +85,21 @@ spec: name: election command: ["/conf/start-node.sh"] readinessProbe: - periodSeconds: 60 - tcpSocket: - port: 2181 + exec: + command: + - sh + - -c + - "/conf/zookeeper-ready.sh 2181" + initialDelaySeconds: 10 + timeoutSeconds: 5 livenessProbe: - periodSeconds: 60 - tcpSocket: - port: 2181 + exec: + command: + - sh + - -c + - "/conf/zookeeper-ready.sh 2181" + initialDelaySeconds: 10 + timeoutSeconds: 5 env: - name: JVMFLAGS value: "-Dzookeeper.electionPortBindRetry=0" diff --git a/openshift/thirdparty.yml b/openshift/thirdparty.yml index 7635b10..c9a318c 100644 --- a/openshift/thirdparty.yml +++ b/openshift/thirdparty.yml @@ -37,6 +37,7 @@ data: server.0=zookeeper-0.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 server.1=zookeeper-1.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 server.2=zookeeper-2.zookeeper-headless.thingsboard.svc.cluster.local:2888:3888;2181 + 4lw.commands.whitelist=ruok log4j.properties: |+ zookeeper.root.logger=INFO, CONSOLE zookeeper.console.threshold=INFO @@ -45,6 +46,14 @@ data: log4j.appender.CONSOLE.Threshold=${zookeeper.console.threshold} log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [myid:%X{myid}] - %-5p [%t:%C{1}@%L] - %m%n + zookeeper-ready.sh: | + #!/bin/bash + OK=$(echo ruok | nc 127.0.0.1 $1) + if [ "$OK" == "imok" ]; then + exit 0 + else + exit 1 + fi --- apiVersion: apps/v1 kind: StatefulSet @@ -76,13 +85,21 @@ spec: name: election command: ["/conf/start-node.sh"] readinessProbe: - periodSeconds: 60 - tcpSocket: - port: 2181 + exec: + command: + - sh + - -c + - "/conf/zookeeper-ready.sh 2181" + initialDelaySeconds: 10 + timeoutSeconds: 5 livenessProbe: - periodSeconds: 60 - tcpSocket: - port: 2181 + exec: + command: + - sh + - -c + - "/conf/zookeeper-ready.sh 2181" + initialDelaySeconds: 10 + timeoutSeconds: 5 env: - name: JVMFLAGS value: "-Dzookeeper.electionPortBindRetry=0"