diff options
Diffstat (limited to 'zookeeper')
-rw-r--r-- | zookeeper/10zookeeper-config.yml | 37 | ||||
-rw-r--r-- | zookeeper/20pzoo-service.yml | 15 | ||||
-rw-r--r-- | zookeeper/21zoo-service.yml (renamed from zookeeper/20zoo-service.yml) | 1 | ||||
-rw-r--r-- | zookeeper/50pzoo.yml | 74 | ||||
-rw-r--r-- | zookeeper/50zoo.yml | 38 | ||||
-rw-r--r-- | zookeeper/51zoo.yml | 71 |
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: {} |