diff options
author | Staffan Olsson <staffan@repos.se> | 2016-09-04 20:29:17 +0200 |
---|---|---|
committer | Staffan Olsson <staffan@repos.se> | 2016-09-04 20:29:17 +0200 |
commit | 1eef3f9bbca15dbc1d2b97e1f5feb51fe27f8526 (patch) | |
tree | 8ffc531a0d772faaf78e483a2dc3fc644cc1c18b /zookeeper/README.md | |
download | kubernetes-kafka-1eef3f9bbca15dbc1d2b97e1f5feb51fe27f8526.tar.gz kubernetes-kafka-1eef3f9bbca15dbc1d2b97e1f5feb51fe27f8526.tar.bz2 kubernetes-kafka-1eef3f9bbca15dbc1d2b97e1f5feb51fe27f8526.zip |
Current from https://github.com/kubernetes/contrib/tree/master/pets
Diffstat (limited to 'zookeeper/README.md')
-rw-r--r-- | zookeeper/README.md | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/zookeeper/README.md b/zookeeper/README.md new file mode 100644 index 0000000..52e1561 --- /dev/null +++ b/zookeeper/README.md @@ -0,0 +1,85 @@ +# 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 exec zoo-0 -- /opt/zookeeper/bin/zkCli.sh create /foo bar; +$ kubectl exec zoo-2 -- /opt/zookeeper/bin/zkCli.sh get /foo; + +Watch existing members: +```console +$ kubectl 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 delete po -l app=zk +$ kubectl 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 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 + |