aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStaffan Olsson <staffan@repos.se>2017-11-10 09:37:47 +0100
committerStaffan Olsson <staffan@repos.se>2017-11-10 09:38:13 +0100
commitd1377a55de27f2f7fbc2a0b445d50f3967d4b18a (patch)
tree7964e13e8db0fefbdb09fc036b4d73559b1cc594
parent74284033cea7c33536af20a5877b55650a6a3ff0 (diff)
downloadkubernetes-kafka-d1377a55de27f2f7fbc2a0b445d50f3967d4b18a.tar.gz
kubernetes-kafka-d1377a55de27f2f7fbc2a0b445d50f3967d4b18a.tar.bz2
kubernetes-kafka-d1377a55de27f2f7fbc2a0b445d50f3967d4b18a.zip
Adds a job that can actually fix under-replication ...
as long as you have one up-to-date replica. The use case is broker outages that are longer than mere re-scheduling, such as zone outage in a multi-zone cluster.
-rw-r--r--maintenance/reassign-paritions-job.yml51
1 files changed, 51 insertions, 0 deletions
diff --git a/maintenance/reassign-paritions-job.yml b/maintenance/reassign-paritions-job.yml
new file mode 100644
index 0000000..e9e184e
--- /dev/null
+++ b/maintenance/reassign-paritions-job.yml
@@ -0,0 +1,51 @@
+apiVersion: batch/v1
+kind: Job
+metadata:
+ name: reassign-partitions
+ namespace: kafka
+spec:
+ template:
+ metadata:
+ name: reassign-partitions
+ spec:
+ containers:
+ - name: kafka
+ image: solsson/kafka:1.0.0@sha256:17fdf1637426f45c93c65826670542e36b9f3394ede1cb61885c6a4befa8f72d
+ env:
+ - name: ZOOKEEPER
+ value: zookeeper.kafka:2181
+ # the following must be edited per job
+ - name: TOPICS
+ value: test-produce-consume,test-kafkacat
+ - name: BROKERS
+ value: 0,2
+ command:
+ - /bin/bash
+ - -ce
+ - >
+ echo '{"topics":[' > /tmp/reassign-topics.json;
+ echo -n ' {"topic":"' >> /tmp/reassign-topics.json;
+ echo -n $TOPICS | sed 's/,/"},\n {"topic":"/g' >> /tmp/reassign-topics.json;
+ echo '"}' >> /tmp/reassign-topics.json;
+ echo ']}' >> /tmp/reassign-topics.json;
+
+ echo "# reassign-topics.json";
+ cat /tmp/reassign-topics.json;
+
+ ./bin/kafka-reassign-partitions.sh
+ --zookeeper=$ZOOKEEPER
+ --generate
+ --topics-to-move-json-file=/tmp/reassign-topics.json
+ --broker-list=$BROKERS > /tmp/generated.txt;
+
+ tail -n 1 /tmp/generated.txt > /tmp/proposed-reassignment.json;
+
+ echo "# proposed-reassignment.json";
+ cat /tmp/proposed-reassignment.json;
+
+ ./bin/kafka-reassign-partitions.sh
+ --zookeeper=$ZOOKEEPER
+ --execute
+ --reassignment-json-file=/tmp/proposed-reassignment.json;
+ restartPolicy: Never
+ backoffLimit: 3