aboutsummaryrefslogtreecommitdiff
path: root/zookeeper
diff options
context:
space:
mode:
Diffstat (limited to 'zookeeper')
-rw-r--r--zookeeper/10zookeeper-config.yml37
-rw-r--r--zookeeper/20pzoo-service.yml15
-rw-r--r--zookeeper/21zoo-service.yml (renamed from zookeeper/20zoo-service.yml)1
-rw-r--r--zookeeper/50pzoo.yml74
-rw-r--r--zookeeper/50zoo.yml38
-rw-r--r--zookeeper/51zoo.yml71
6 files changed, 198 insertions, 38 deletions
diff --git a/zookeeper/10zookeeper-config.yml b/zookeeper/10zookeeper-config.yml
new file mode 100644
index 0000000..e796b4b
--- /dev/null
+++ b/zookeeper/10zookeeper-config.yml
@@ -0,0 +1,37 @@
+kind: ConfigMap
+metadata:
+ name: zookeeper-config
+ namespace: kafka
+apiVersion: v1
+data:
+ init.sh: |-
+ #!/bin/bash
+ set -x
+
+ [ -z "$ID_OFFSET" ] && ID_OFFSET=1
+ export ZOOKEEPER_SERVER_ID=$((${HOSTNAME##*-} + $ID_OFFSET))
+ echo "${ZOOKEEPER_SERVER_ID:-1}" | tee /var/lib/zookeeper/data/myid
+ sed -i "s/server\.$ZOOKEEPER_SERVER_ID\=[a-z0-9.-]*/server.$ZOOKEEPER_SERVER_ID=0.0.0.0/" /etc/kafka/zookeeper.properties
+
+ zookeeper.properties: |-
+ tickTime=2000
+ dataDir=/var/lib/zookeeper/data
+ dataLogDir=/var/lib/zookeeper/log
+ clientPort=2181
+ initLimit=5
+ syncLimit=2
+ server.1=pzoo-0.pzoo:2888:3888:participant
+ server.2=pzoo-1.pzoo:2888:3888:participant
+ server.3=pzoo-2.pzoo:2888:3888:participant
+ server.4=zoo-0.zoo:2888:3888:participant
+ server.5=zoo-1.zoo:2888:3888:participant
+
+ log4j.properties: |-
+ log4j.rootLogger=INFO, stdout
+ log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+ log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+ log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n
+
+ # Suppress connection log messages, three lines per livenessProbe execution
+ log4j.logger.org.apache.zookeeper.server.NIOServerCnxnFactory=WARN
+ log4j.logger.org.apache.zookeeper.server.NIOServerCnxn=WARN
diff --git a/zookeeper/20pzoo-service.yml b/zookeeper/20pzoo-service.yml
new file mode 100644
index 0000000..00c33e1
--- /dev/null
+++ b/zookeeper/20pzoo-service.yml
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: pzoo
+ namespace: kafka
+spec:
+ ports:
+ - port: 2888
+ name: peer
+ - port: 3888
+ name: leader-election
+ clusterIP: None
+ selector:
+ app: zookeeper
+ storage: persistent
diff --git a/zookeeper/20zoo-service.yml b/zookeeper/21zoo-service.yml
index d15dcc6..93fb321 100644
--- a/zookeeper/20zoo-service.yml
+++ b/zookeeper/21zoo-service.yml
@@ -12,3 +12,4 @@ spec:
clusterIP: None
selector:
app: zookeeper
+ storage: ephemeral
diff --git a/zookeeper/50pzoo.yml b/zookeeper/50pzoo.yml
new file mode 100644
index 0000000..f9d5c58
--- /dev/null
+++ b/zookeeper/50pzoo.yml
@@ -0,0 +1,74 @@
+apiVersion: apps/v1beta1
+kind: StatefulSet
+metadata:
+ name: pzoo
+ namespace: kafka
+spec:
+ serviceName: "pzoo"
+ replicas: 3
+ template:
+ metadata:
+ labels:
+ app: zookeeper
+ storage: persistent
+ annotations:
+ spec:
+ terminationGracePeriodSeconds: 10
+ initContainers:
+ - name: init-config
+ image: solsson/kafka:0.11.0.0@sha256:b27560de08d30ebf96d12e74f80afcaca503ad4ca3103e63b1fd43a2e4c976ce
+ command: ['/bin/bash', '/etc/kafka/init.sh']
+ volumeMounts:
+ - name: config
+ mountPath: /etc/kafka
+ - name: data
+ mountPath: /var/lib/zookeeper/data
+ containers:
+ - name: zookeeper
+ image: solsson/kafka:0.11.0.0@sha256:b27560de08d30ebf96d12e74f80afcaca503ad4ca3103e63b1fd43a2e4c976ce
+ env:
+ - name: KAFKA_LOG4J_OPTS
+ value: -Dlog4j.configuration=file:/etc/kafka/log4j.properties
+ command:
+ - ./bin/zookeeper-server-start.sh
+ - /etc/kafka/zookeeper.properties
+ ports:
+ - containerPort: 2181
+ name: client
+ - containerPort: 2888
+ name: peer
+ - containerPort: 3888
+ name: leader-election
+ resources:
+ requests:
+ cpu: 10m
+ memory: 100Mi
+ livenessProbe:
+ exec:
+ command:
+ - /bin/sh
+ - -c
+ - '[ "imok" = "$(echo ruok | nc -w 1 127.0.0.1 2181)" ]'
+ readinessProbe:
+ exec:
+ command:
+ - /bin/sh
+ - -c
+ - '[ "imok" = "$(echo ruok | nc -w 1 127.0.0.1 2181)" ]'
+ volumeMounts:
+ - name: config
+ mountPath: /etc/kafka
+ - name: data
+ mountPath: /var/lib/zookeeper/data
+ volumes:
+ - name: config
+ configMap:
+ name: zookeeper-config
+ volumeClaimTemplates:
+ - metadata:
+ name: data
+ spec:
+ accessModes: [ "ReadWriteOnce" ]
+ resources:
+ requests:
+ storage: 10Gi
diff --git a/zookeeper/50zoo.yml b/zookeeper/50zoo.yml
deleted file mode 100644
index 5cb7c02..0000000
--- a/zookeeper/50zoo.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-apiVersion: apps/v1beta1
-kind: StatefulSet
-metadata:
- name: zoo
- namespace: kafka
-spec:
- serviceName: "zoo"
- replicas: 5
- template:
- metadata:
- labels:
- app: zookeeper
- spec:
- terminationGracePeriodSeconds: 10
- containers:
- - name: zookeeper
- image: solsson/zookeeper-statefulset:3.4.9@sha256:d32b44b32009a69b3450a5216f459e504f1041f587596895219fc04cf22f5546
- env:
- - name: ZOO_SERVERS
- value: server.1=zoo-0.zoo:2888:3888:participant server.2=zoo-1.zoo:2888:3888:participant server.3=zoo-2.zoo:2888:3888:participant server.4=zoo-3.zoo:2888:3888:participant server.5=zoo-4.zoo:2888:3888:participant
- ports:
- - containerPort: 2181
- name: client
- - containerPort: 2888
- name: peer
- - containerPort: 3888
- name: leader-election
- volumeMounts:
- - name: datadir
- mountPath: /data
- # There's defaults in this folder, such as logging config
- #- name: conf
- # mountPath: /conf
- volumes:
- #- name: conf
- # emptyDir: {}
- - name: datadir
- emptyDir: {}
diff --git a/zookeeper/51zoo.yml b/zookeeper/51zoo.yml
new file mode 100644
index 0000000..778567d
--- /dev/null
+++ b/zookeeper/51zoo.yml
@@ -0,0 +1,71 @@
+apiVersion: apps/v1beta1
+kind: StatefulSet
+metadata:
+ name: zoo
+ namespace: kafka
+spec:
+ serviceName: "zoo"
+ replicas: 2
+ template:
+ metadata:
+ labels:
+ app: zookeeper
+ storage: ephemeral
+ annotations:
+ spec:
+ terminationGracePeriodSeconds: 10
+ initContainers:
+ - name: init-config
+ image: solsson/kafka:0.11.0.0@sha256:b27560de08d30ebf96d12e74f80afcaca503ad4ca3103e63b1fd43a2e4c976ce
+ command: ['/bin/bash', '/etc/kafka/init.sh']
+ env:
+ - name: ID_OFFSET
+ value: "4"
+ volumeMounts:
+ - name: config
+ mountPath: /etc/kafka
+ - name: data
+ mountPath: /var/lib/zookeeper/data
+ containers:
+ - name: zookeeper
+ image: solsson/kafka:0.11.0.0@sha256:b27560de08d30ebf96d12e74f80afcaca503ad4ca3103e63b1fd43a2e4c976ce
+ env:
+ - name: KAFKA_LOG4J_OPTS
+ value: -Dlog4j.configuration=file:/etc/kafka/log4j.properties
+ command:
+ - ./bin/zookeeper-server-start.sh
+ - /etc/kafka/zookeeper.properties
+ ports:
+ - containerPort: 2181
+ name: client
+ - containerPort: 2888
+ name: peer
+ - containerPort: 3888
+ name: leader-election
+ resources:
+ requests:
+ cpu: 10m
+ memory: 100Mi
+ livenessProbe:
+ exec:
+ command:
+ - /bin/sh
+ - -c
+ - '[ "imok" = "$(echo ruok | nc -w 1 127.0.0.1 2181)" ]'
+ readinessProbe:
+ exec:
+ command:
+ - /bin/sh
+ - -c
+ - '[ "imok" = "$(echo ruok | nc -w 1 127.0.0.1 2181)" ]'
+ volumeMounts:
+ - name: config
+ mountPath: /etc/kafka
+ - name: data
+ mountPath: /var/lib/zookeeper/data
+ volumes:
+ - name: config
+ configMap:
+ name: zookeeper-config
+ - name: data
+ emptyDir: {}