aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStaffan Olsson <staffan@repos.se>2016-10-25 12:17:05 +0200
committerStaffan Olsson <staffan@repos.se>2016-10-25 12:17:05 +0200
commit01061ae0ad797b944fff7f01116e857e8b762f19 (patch)
tree52da057a30841867d3d74a2276194dc462b6889e
parent90f121965e19ccc36bd5ffb591ff469d97cbdca0 (diff)
parent8e7be7e60a2812c0ecf244016581fba6ee11bbfa (diff)
downloadkubernetes-kafka-nopetset-zk.tar.gz
kubernetes-kafka-nopetset-zk.tar.bz2
kubernetes-kafka-nopetset-zk.zip
Merge branch 'zookeeper-5-nodes' into nopetset-zknopetset-zk
-rw-r--r--README.md7
-rw-r--r--zookeeper/00namespace.yml5
-rw-r--r--zookeeper/20zoo-service.yml34
-rw-r--r--zookeeper/50zoo.yml2
-rw-r--r--zookeeper/51zoo.yml2
-rw-r--r--zookeeper/52zoo.yml2
-rw-r--r--zookeeper/53zoo.yml38
-rw-r--r--zookeeper/54zoo.yml38
-rw-r--r--zookeeper/README.md85
-rw-r--r--zookeeper/bootstrap/pv-template.yml48
-rwxr-xr-xzookeeper/bootstrap/pv.sh11
-rw-r--r--zookeeper/bootstrap/pvc.yml48
12 files changed, 120 insertions, 200 deletions
diff --git a/README.md b/README.md
index c2b5427..d26d157 100644
--- a/README.md
+++ b/README.md
@@ -30,13 +30,10 @@ The volume size in the example is very small. The numbers don't really matter as
## Set up Zookeeper
-This module contains a copy of `pets/zookeeper/` from https://github.com/kubernetes/contrib.
+With [nopetset](https://github.com/Yolean/kubernetes-kafka/pull/9) we also discarded persistent storage, so there is no zookeeper bootstrap or [README](https://github.com/Yolean/kubernetes-kafka/blob/master/zookeeper/README.md). Just run:
-See the `./zookeeper` folder and follow the README there.
-
-An additional service has been added here, create using:
```
-kubectl create -f ./zookeeper/service.yml
+kubectl create -f ./zookeeper/
```
## Start Kafka
diff --git a/zookeeper/00namespace.yml b/zookeeper/00namespace.yml
new file mode 100644
index 0000000..a6cf001
--- /dev/null
+++ b/zookeeper/00namespace.yml
@@ -0,0 +1,5 @@
+---
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: kafka
diff --git a/zookeeper/20zoo-service.yml b/zookeeper/20zoo-service.yml
index 820647e..5fa87f2 100644
--- a/zookeeper/20zoo-service.yml
+++ b/zookeeper/20zoo-service.yml
@@ -49,3 +49,37 @@ spec:
name: peer
- port: 3888
name: leader-election
+---
+apiVersion: v1
+kind: Service
+metadata:
+ annotations:
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
+ name: zoo-3
+ namespace: kafka
+spec:
+ selector:
+ app: zookeeper
+ petindex: "3"
+ ports:
+ - port: 2888
+ name: peer
+ - port: 3888
+ name: leader-election
+---
+apiVersion: v1
+kind: Service
+metadata:
+ annotations:
+ service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
+ name: zoo-4
+ namespace: kafka
+spec:
+ selector:
+ app: zookeeper
+ petindex: "4"
+ ports:
+ - port: 2888
+ name: peer
+ - port: 3888
+ name: leader-election
diff --git a/zookeeper/50zoo.yml b/zookeeper/50zoo.yml
index d0f26e4..8c37d63 100644
--- a/zookeeper/50zoo.yml
+++ b/zookeeper/50zoo.yml
@@ -18,7 +18,7 @@ spec:
- name: ZOO_MY_ID
value: "1"
- name: ZOO_SERVERS
- value: server.1=0.0.0.0:2888:3888:participant server.2=zoo-1.kafka.svc.cluster.local:2888:3888:participant server.3=zoo-2.kafka.svc.cluster.local:2888:3888:participant
+ value: server.1=0.0.0.0:2888:3888:participant server.2=zoo-1.kafka.svc.cluster.local:2888:3888:participant server.3=zoo-2.kafka.svc.cluster.local:2888:3888:participant server.4=zoo-3.kafka.svc.cluster.local:2888:3888:participant server.5=zoo-4.kafka.svc.cluster.local:2888:3888:participant
ports:
- containerPort: 2181
name: client
diff --git a/zookeeper/51zoo.yml b/zookeeper/51zoo.yml
index 3341e00..785f7d1 100644
--- a/zookeeper/51zoo.yml
+++ b/zookeeper/51zoo.yml
@@ -18,7 +18,7 @@ spec:
- name: ZOO_MY_ID
value: "2"
- name: ZOO_SERVERS
- value: server.1=zoo-0.kafka.svc.cluster.local:2888:3888:participant server.2=0.0.0.0:2888:3888:participant server.3=zoo-2.kafka.svc.cluster.local:2888:3888:participant
+ value: server.1=zoo-0.kafka.svc.cluster.local:2888:3888:participant server.2=0.0.0.0:2888:3888:participant server.3=zoo-2.kafka.svc.cluster.local:2888:3888:participant server.4=zoo-3.kafka.svc.cluster.local:2888:3888:participant server.5=zoo-4.kafka.svc.cluster.local:2888:3888:participant
ports:
- containerPort: 2181
name: client
diff --git a/zookeeper/52zoo.yml b/zookeeper/52zoo.yml
index 4676525..41902db 100644
--- a/zookeeper/52zoo.yml
+++ b/zookeeper/52zoo.yml
@@ -18,7 +18,7 @@ spec:
- name: ZOO_MY_ID
value: "3"
- name: ZOO_SERVERS
- value: server.1=zoo-0.kafka.svc.cluster.local:2888:3888:participant server.2=zoo-1.kafka.svc.cluster.local:2888:3888:participant server.3=0.0.0.0:2888:3888:participant
+ value: server.1=zoo-0.kafka.svc.cluster.local:2888:3888:participant server.2=zoo-1.kafka.svc.cluster.local:2888:3888:participant server.3=0.0.0.0:2888:3888:participant server.4=zoo-3.kafka.svc.cluster.local:2888:3888:participant server.5=zoo-4.kafka.svc.cluster.local:2888:3888:participant
ports:
- containerPort: 2181
name: client
diff --git a/zookeeper/53zoo.yml b/zookeeper/53zoo.yml
new file mode 100644
index 0000000..20a8959
--- /dev/null
+++ b/zookeeper/53zoo.yml
@@ -0,0 +1,38 @@
+apiVersion: extensions/v1beta1
+kind: ReplicaSet
+metadata:
+ name: zoo-3
+ namespace: kafka
+spec:
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: zookeeper
+ petindex: "3"
+ spec:
+ containers:
+ - name: zookeeper
+ image: zookeeper@sha256:bb1a12a2168fc5e508ee019aea2d45bf846e99ea87d6bcaf2ede5c59fd439368
+ env:
+ - name: ZOO_MY_ID
+ value: "4"
+ - name: ZOO_SERVERS
+ value: server.1=zoo-0.kafka.svc.cluster.local:2888:3888:participant server.2=zoo-1.kafka.svc.cluster.local:2888:3888:participant server.3=zoo-2.kafka.svc.cluster.local:2888:3888:participant server.4=0.0.0.0:2888:3888:participant server.5=zoo-4.kafka.svc.cluster.local:2888:3888:participant
+ ports:
+ - containerPort: 2181
+ name: client
+ - containerPort: 2888
+ name: peer
+ - containerPort: 3888
+ name: leader-election
+ volumeMounts:
+ - name: datadir
+ mountPath: /tmp/zookeeper
+ - name: opt
+ mountPath: /opt/
+ volumes:
+ - name: opt
+ emptyDir: {}
+ - name: datadir
+ emptyDir: {}
diff --git a/zookeeper/54zoo.yml b/zookeeper/54zoo.yml
new file mode 100644
index 0000000..017e9c2
--- /dev/null
+++ b/zookeeper/54zoo.yml
@@ -0,0 +1,38 @@
+apiVersion: extensions/v1beta1
+kind: ReplicaSet
+metadata:
+ name: zoo-4
+ namespace: kafka
+spec:
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: zookeeper
+ petindex: "4"
+ spec:
+ containers:
+ - name: zookeeper
+ image: zookeeper@sha256:bb1a12a2168fc5e508ee019aea2d45bf846e99ea87d6bcaf2ede5c59fd439368
+ env:
+ - name: ZOO_MY_ID
+ value: "5"
+ - name: ZOO_SERVERS
+ value: server.1=zoo-0.kafka.svc.cluster.local:2888:3888:participant server.2=zoo-1.kafka.svc.cluster.local:2888:3888:participant server.3=zoo-2.kafka.svc.cluster.local:2888:3888:participant server.4=zoo-3.kafka.svc.cluster.local:2888:3888:participant server.5=0.0.0.0:2888:3888:participant
+ ports:
+ - containerPort: 2181
+ name: client
+ - containerPort: 2888
+ name: peer
+ - containerPort: 3888
+ name: leader-election
+ volumeMounts:
+ - name: datadir
+ mountPath: /tmp/zookeeper
+ - name: opt
+ mountPath: /opt/
+ volumes:
+ - name: opt
+ emptyDir: {}
+ - name: datadir
+ emptyDir: {}
diff --git a/zookeeper/README.md b/zookeeper/README.md
deleted file mode 100644
index f485148..0000000
--- a/zookeeper/README.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# Zookeeper
-
-This example runs zookeeper through a petset.
-
-## Bootstrap
-
-Create the petset in this directory
-```
-$ kubetl create -f zookeeper.yaml
-```
-
-Once you have all 3 nodes in Running, you can run the "test.sh" script in this directory.
-
-## Failover
-
-You can test failover by killing the leader. Insert a key:
-```console
-$ kubectl -n kafka exec zoo-0 -- /opt/zookeeper/bin/zkCli.sh create /foo bar;
-$ kubectl -n kafka exec zoo-2 -- /opt/zookeeper/bin/zkCli.sh get /foo;
-
-Watch existing members:
-```console
-$ kubectl -n kafka run --attach bbox --image=busybox --restart=Never -- sh -c 'while true; do for i in 0 1 2; do echo zoo-$i $(echo stats | nc zoo-$i.zk:2181 | grep Mode); sleep 1; done; done';
-zoo-2 Mode: follower
-zoo-0 Mode: follower
-zoo-1 Mode: leader
-zoo-2 Mode: follower
-```
-
-Delete pets and wait for the petset controller to bring the back up:
-```console
-$ kubectl -n kafka delete po -l app=zk
-$ kubectl -n kafka get po --watch-only
-NAME READY STATUS RESTARTS AGE
-zoo-0 0/1 Init:0/2 0 16s
-zoo-0 0/1 Init:0/2 0 21s
-zoo-0 0/1 PodInitializing 0 23s
-zoo-0 1/1 Running 0 41s
-zoo-1 0/1 Pending 0 0s
-zoo-1 0/1 Init:0/2 0 0s
-zoo-1 0/1 Init:0/2 0 14s
-zoo-1 0/1 PodInitializing 0 17s
-zoo-1 0/1 Running 0 18s
-zoo-2 0/1 Pending 0 0s
-zoo-2 0/1 Init:0/2 0 0s
-zoo-2 0/1 Init:0/2 0 12s
-zoo-2 0/1 Init:0/2 0 28s
-zoo-2 0/1 PodInitializing 0 31s
-zoo-2 0/1 Running 0 32s
-...
-
-zoo-0 Mode: follower
-zoo-1 Mode: leader
-zoo-2 Mode: follower
-```
-
-Check the previously inserted key:
-```console
-$ kubectl -n kafka exec zoo-1 -- /opt/zookeeper/bin/zkCli.sh get /foo
-ionid = 0x354887858e80035, negotiated timeout = 30000
-
-WATCHER::
-
-WatchedEvent state:SyncConnected type:None path:null
-bar
-```
-
-## Scaling
-
-You can scale up by modifying the number of replicas on the PetSet.
-
-## Image Upgrade
-
-TODO: Add details
-
-## Maintenance
-
-TODO: Add details
-
-## Limitations
-* Both petset and init containers are in alpha
-* Look through the on-start and on-change scripts for TODOs
-* Doesn't support the addition of observers through the petset
-* Only supports storage options that have backends for persistent volume claims
-
diff --git a/zookeeper/bootstrap/pv-template.yml b/zookeeper/bootstrap/pv-template.yml
deleted file mode 100644
index 61d84ee..0000000
--- a/zookeeper/bootstrap/pv-template.yml
+++ /dev/null
@@ -1,48 +0,0 @@
----
-apiVersion: v1
-kind: PersistentVolume
-metadata:
- name: datadir-zoo-0
- namespace: kafka
- labels:
- app: zk
- petindex: "0"
-spec:
- accessModes:
- - ReadWriteOnce
- capacity:
- storage: 100Mi
- hostPath:
- path: /tmp/k8s-data/datadir-zoo-0
----
-apiVersion: v1
-kind: PersistentVolume
-metadata:
- name: datadir-zoo-1
- namespace: kafka
- labels:
- app: zk
- petindex: "1"
-spec:
- accessModes:
- - ReadWriteOnce
- capacity:
- storage: 100Mi
- hostPath:
- path: /tmp/k8s-data/datadir-zoo-1
----
-apiVersion: v1
-kind: PersistentVolume
-metadata:
- name: datadir-zoo-2
- namespace: kafka
- labels:
- app: zk
- petindex: "2"
-spec:
- accessModes:
- - ReadWriteOnce
- capacity:
- storage: 100Mi
- hostPath:
- path: /tmp/k8s-data/datadir-zoo-2
diff --git a/zookeeper/bootstrap/pv.sh b/zookeeper/bootstrap/pv.sh
deleted file mode 100755
index ade25c5..0000000
--- a/zookeeper/bootstrap/pv.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-
-echo "Note that in for example GKE a PetSet will have PersistentVolume(s) and PersistentVolumeClaim(s) created for it automatically"
-
-dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )"
-path="$dir/data"
-echo "Please enter a path where to store data during local testing: ($path)"
-read newpath
-[ -n "$newpath" ] && path=$newpath
-
-cat $dir/bootstrap/pv-template.yml | sed "s|/tmp/k8s-data|$path|" | kubectl create -f -
diff --git a/zookeeper/bootstrap/pvc.yml b/zookeeper/bootstrap/pvc.yml
deleted file mode 100644
index 84d0e46..0000000
--- a/zookeeper/bootstrap/pvc.yml
+++ /dev/null
@@ -1,48 +0,0 @@
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
- name: datadir-zoo-0
- namespace: kafka
-spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 100Mi
- selector:
- matchLabels:
- app: zk
- petindex: "0"
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
- name: datadir-zoo-1
- namespace: kafka
-spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 100Mi
- selector:
- matchLabels:
- app: zk
- petindex: "1"
----
-kind: PersistentVolumeClaim
-apiVersion: v1
-metadata:
- name: datadir-zoo-2
- namespace: kafka
-spec:
- accessModes:
- - ReadWriteOnce
- resources:
- requests:
- storage: 100Mi
- selector:
- matchLabels:
- app: zk
- petindex: "2"