From 4fd1e5ebf4196ac27d6d49d2c1a6b7b57eaab8e3 Mon Sep 17 00:00:00 2001 From: Staffan Olsson Date: Mon, 26 Jun 2017 13:00:12 +0200 Subject: Makes persistence a fundamental attribute of the statefulset --- zookeeper/10zookeeper-config.yml | 6 ++-- zookeeper/20pzoo-service.yml | 15 +++++++++ zookeeper/20zoo-service.yml | 14 -------- zookeeper/50pzoo.yml | 70 ++++++++++++++++++++++++++++++++++++++++ zookeeper/50zoo.yml | 69 --------------------------------------- 5 files changed, 88 insertions(+), 86 deletions(-) create mode 100644 zookeeper/20pzoo-service.yml delete mode 100644 zookeeper/20zoo-service.yml create mode 100644 zookeeper/50pzoo.yml delete mode 100644 zookeeper/50zoo.yml diff --git a/zookeeper/10zookeeper-config.yml b/zookeeper/10zookeeper-config.yml index e9402cb..b718ce1 100644 --- a/zookeeper/10zookeeper-config.yml +++ b/zookeeper/10zookeeper-config.yml @@ -11,9 +11,9 @@ data: clientPort=2181 initLimit=5 syncLimit=2 - 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.1=pzoo-0.zoo:2888:3888:participant + server.2=pzoo-1.zoo:2888:3888:participant + server.3=pzoo-2.zoo:2888:3888:participant server.4=zoo-3.zoo:2888:3888:participant server.5=zoo-4.zoo:2888:3888:participant 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/20zoo-service.yml deleted file mode 100644 index d15dcc6..0000000 --- a/zookeeper/20zoo-service.yml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: zoo - namespace: kafka -spec: - ports: - - port: 2888 - name: peer - - port: 3888 - name: leader-election - clusterIP: None - selector: - app: zookeeper diff --git a/zookeeper/50pzoo.yml b/zookeeper/50pzoo.yml new file mode 100644 index 0000000..925f4c5 --- /dev/null +++ b/zookeeper/50pzoo.yml @@ -0,0 +1,70 @@ +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: pzoo + namespace: kafka +spec: + serviceName: "pzoo" + replicas: 5 + template: + metadata: + labels: + app: zookeeper + storage: persistent + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "5556" + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: metrics + image: solsson/kafka-prometheus-jmx-exporter@sha256:1f7c96c287a2dbec1d909cd8f96c0656310239b55a9a90d7fd12c81f384f1f7d + command: + - "java" + - "-jar" + - "jmx_prometheus_httpserver.jar" + - "5556" + - example_configs/zookeeper.yaml + ports: + - containerPort: 5556 + - name: zookeeper + image: solsson/kafka:0.11.0.0-rc2@sha256:c1316e0131f4ec83bc645ca2141e4fda94e0d28f4fb5f836e15e37a5e054bdf1 + env: + - name: JMX_PORT + value: "5555" + command: + - sh + - -c + - > + set -e; + export ZOOKEEPER_SERVER_ID=$((${HOSTNAME##*-} + 1)); + 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/" config/zookeeper.properties; + cat config/zookeeper.properties; + ./bin/zookeeper-server-start.sh config/zookeeper.properties + ports: + - containerPort: 2181 + name: client + - containerPort: 2888 + name: peer + - containerPort: 3888 + name: leader-election + volumeMounts: + - name: config + mountPath: /usr/local/kafka/config + - name: data + mountPath: /var/lib/zookeeper/data + volumes: + - name: config + configMap: + name: zookeeper-config + volumeClaimTemplates: + - metadata: + name: data + annotations: + volume.beta.kubernetes.io/storage-class: kafka-zookeeper + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 1Gi diff --git a/zookeeper/50zoo.yml b/zookeeper/50zoo.yml deleted file mode 100644 index 12d9c44..0000000 --- a/zookeeper/50zoo.yml +++ /dev/null @@ -1,69 +0,0 @@ -apiVersion: apps/v1beta1 -kind: StatefulSet -metadata: - name: zoo - namespace: kafka -spec: - serviceName: "zoo" - replicas: 5 - template: - metadata: - labels: - app: zookeeper - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "5556" - spec: - terminationGracePeriodSeconds: 10 - containers: - - name: metrics - image: solsson/kafka-prometheus-jmx-exporter@sha256:1f7c96c287a2dbec1d909cd8f96c0656310239b55a9a90d7fd12c81f384f1f7d - command: - - "java" - - "-jar" - - "jmx_prometheus_httpserver.jar" - - "5556" - - example_configs/zookeeper.yaml - ports: - - containerPort: 5556 - - name: zookeeper - image: solsson/kafka:0.11.0.0-rc2@sha256:c1316e0131f4ec83bc645ca2141e4fda94e0d28f4fb5f836e15e37a5e054bdf1 - env: - - name: JMX_PORT - value: "5555" - command: - - sh - - -c - - > - set -e; - export ZOOKEEPER_SERVER_ID=$((${HOSTNAME##*-} + 1)); - 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/" config/zookeeper.properties; - cat config/zookeeper.properties; - ./bin/zookeeper-server-start.sh config/zookeeper.properties - ports: - - containerPort: 2181 - name: client - - containerPort: 2888 - name: peer - - containerPort: 3888 - name: leader-election - volumeMounts: - - name: config - mountPath: /usr/local/kafka/config - - name: data - mountPath: /var/lib/zookeeper/data - volumes: - - name: config - configMap: - name: zookeeper-config - volumeClaimTemplates: - - metadata: - name: data - annotations: - volume.beta.kubernetes.io/storage-class: kafka-zookeeper - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 1Gi -- cgit v1.2.3 From 225569f30ba7644816a3cb2c1a83b731cc3c0276 Mon Sep 17 00:00:00 2001 From: Staffan Olsson Date: Mon, 26 Jun 2017 13:03:03 +0200 Subject: Creates identical definitions for a non-persistent zoo statefulset --- zookeeper/21zoo-service.yml | 15 ++++++++++ zookeeper/51zoo.yml | 70 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 zookeeper/21zoo-service.yml create mode 100644 zookeeper/51zoo.yml diff --git a/zookeeper/21zoo-service.yml b/zookeeper/21zoo-service.yml new file mode 100644 index 0000000..00c33e1 --- /dev/null +++ b/zookeeper/21zoo-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/51zoo.yml b/zookeeper/51zoo.yml new file mode 100644 index 0000000..925f4c5 --- /dev/null +++ b/zookeeper/51zoo.yml @@ -0,0 +1,70 @@ +apiVersion: apps/v1beta1 +kind: StatefulSet +metadata: + name: pzoo + namespace: kafka +spec: + serviceName: "pzoo" + replicas: 5 + template: + metadata: + labels: + app: zookeeper + storage: persistent + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "5556" + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: metrics + image: solsson/kafka-prometheus-jmx-exporter@sha256:1f7c96c287a2dbec1d909cd8f96c0656310239b55a9a90d7fd12c81f384f1f7d + command: + - "java" + - "-jar" + - "jmx_prometheus_httpserver.jar" + - "5556" + - example_configs/zookeeper.yaml + ports: + - containerPort: 5556 + - name: zookeeper + image: solsson/kafka:0.11.0.0-rc2@sha256:c1316e0131f4ec83bc645ca2141e4fda94e0d28f4fb5f836e15e37a5e054bdf1 + env: + - name: JMX_PORT + value: "5555" + command: + - sh + - -c + - > + set -e; + export ZOOKEEPER_SERVER_ID=$((${HOSTNAME##*-} + 1)); + 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/" config/zookeeper.properties; + cat config/zookeeper.properties; + ./bin/zookeeper-server-start.sh config/zookeeper.properties + ports: + - containerPort: 2181 + name: client + - containerPort: 2888 + name: peer + - containerPort: 3888 + name: leader-election + volumeMounts: + - name: config + mountPath: /usr/local/kafka/config + - name: data + mountPath: /var/lib/zookeeper/data + volumes: + - name: config + configMap: + name: zookeeper-config + volumeClaimTemplates: + - metadata: + name: data + annotations: + volume.beta.kubernetes.io/storage-class: kafka-zookeeper + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 1Gi -- cgit v1.2.3 From cb83353833645e543153cf6f9756ef3858f80442 Mon Sep 17 00:00:00 2001 From: Staffan Olsson Date: Mon, 26 Jun 2017 13:14:54 +0200 Subject: A cluster in three availability zones now get one persistent zk each, and two that can move automatically at node failures --- zookeeper/10zookeeper-config.yml | 10 +++++----- zookeeper/21zoo-service.yml | 4 ++-- zookeeper/50pzoo.yml | 2 +- zookeeper/51zoo.yml | 22 +++++++--------------- 4 files changed, 15 insertions(+), 23 deletions(-) diff --git a/zookeeper/10zookeeper-config.yml b/zookeeper/10zookeeper-config.yml index b718ce1..58d8b6a 100644 --- a/zookeeper/10zookeeper-config.yml +++ b/zookeeper/10zookeeper-config.yml @@ -11,11 +11,11 @@ data: clientPort=2181 initLimit=5 syncLimit=2 - server.1=pzoo-0.zoo:2888:3888:participant - server.2=pzoo-1.zoo:2888:3888:participant - server.3=pzoo-2.zoo:2888:3888:participant - server.4=zoo-3.zoo:2888:3888:participant - server.5=zoo-4.zoo:2888:3888:participant + 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 diff --git a/zookeeper/21zoo-service.yml b/zookeeper/21zoo-service.yml index 00c33e1..93fb321 100644 --- a/zookeeper/21zoo-service.yml +++ b/zookeeper/21zoo-service.yml @@ -1,7 +1,7 @@ apiVersion: v1 kind: Service metadata: - name: pzoo + name: zoo namespace: kafka spec: ports: @@ -12,4 +12,4 @@ spec: clusterIP: None selector: app: zookeeper - storage: persistent + storage: ephemeral diff --git a/zookeeper/50pzoo.yml b/zookeeper/50pzoo.yml index 925f4c5..993fd55 100644 --- a/zookeeper/50pzoo.yml +++ b/zookeeper/50pzoo.yml @@ -5,7 +5,7 @@ metadata: namespace: kafka spec: serviceName: "pzoo" - replicas: 5 + replicas: 3 template: metadata: labels: diff --git a/zookeeper/51zoo.yml b/zookeeper/51zoo.yml index 925f4c5..f041a9a 100644 --- a/zookeeper/51zoo.yml +++ b/zookeeper/51zoo.yml @@ -1,16 +1,16 @@ apiVersion: apps/v1beta1 kind: StatefulSet metadata: - name: pzoo + name: zoo namespace: kafka spec: - serviceName: "pzoo" - replicas: 5 + serviceName: "zoo" + replicas: 2 template: metadata: labels: app: zookeeper - storage: persistent + storage: ephemeral annotations: prometheus.io/scrape: "true" prometheus.io/port: "5556" @@ -37,7 +37,7 @@ spec: - -c - > set -e; - export ZOOKEEPER_SERVER_ID=$((${HOSTNAME##*-} + 1)); + export ZOOKEEPER_SERVER_ID=$((${HOSTNAME##*-} + 4)); 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/" config/zookeeper.properties; cat config/zookeeper.properties; @@ -58,13 +58,5 @@ spec: - name: config configMap: name: zookeeper-config - volumeClaimTemplates: - - metadata: - name: data - annotations: - volume.beta.kubernetes.io/storage-class: kafka-zookeeper - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 1Gi + - name: data + emptyDir: {} -- cgit v1.2.3