aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStaffan Olsson <staffan@repos.se>2016-12-25 16:07:30 +0100
committerStaffan Olsson <staffan@repos.se>2016-12-25 16:07:30 +0100
commitfce58a008d9c79ff21683a4af7647bc7336bcbf2 (patch)
treeed21b73a97a646e0ea627c5e88bbd18428aeb10f
parent932307616aa4ccd59df42209d92e83aef244f3d0 (diff)
downloadkubernetes-kafka-fce58a008d9c79ff21683a4af7647bc7336bcbf2.tar.gz
kubernetes-kafka-fce58a008d9c79ff21683a4af7647bc7336bcbf2.tar.bz2
kubernetes-kafka-fce58a008d9c79ff21683a4af7647bc7336bcbf2.zip
Current Zookeeper from https://github.com/kubernetes/contrib/blob/master/statefulsets/
-rw-r--r--zookeeper/zookeeper.yaml188
1 files changed, 110 insertions, 78 deletions
diff --git a/zookeeper/zookeeper.yaml b/zookeeper/zookeeper.yaml
index ee2b237..71a77e0 100644
--- a/zookeeper/zookeeper.yaml
+++ b/zookeeper/zookeeper.yaml
@@ -1,31 +1,49 @@
-# A headless service to create DNS records
+---
apiVersion: v1
kind: Service
metadata:
- annotations:
- service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
- name: zk
- namespace: kafka
+ name: zk-headless
labels:
- app: zk
+ app: zk-headless
spec:
ports:
- port: 2888
- name: peer
+ name: server
- port: 3888
name: leader-election
- # *.zk.kafka.svc.cluster.local
clusterIP: None
selector:
app: zk
---
-apiVersion: apps/v1alpha1
-kind: PetSet
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: zk-config
+data:
+ jvm.heap: "2G"
+ tick: "2000"
+ init: "10"
+ sync: "5"
+ client.cnxns: "60"
+ snap.retain: "3"
+ purge.interval: "0"
+---
+apiVersion: policy/v1beta1
+kind: PodDisruptionBudget
+metadata:
+ name: zk-budget
+spec:
+ selector:
+ matchLabels:
+ app: zk
+ minAvailable: 2
+---
+apiVersion: apps/v1beta1
+kind: StatefulSet
metadata:
- name: zoo
- namespace: kafka
+ name: zk
spec:
- serviceName: "zk"
+ serviceName: zk-headless
replicas: 3
template:
metadata:
@@ -33,92 +51,106 @@ spec:
app: zk
annotations:
pod.alpha.kubernetes.io/initialized: "true"
- pod.alpha.kubernetes.io/init-containers: '[
- {
- "name": "install",
- "image": "gcr.io/google_containers/zookeeper-install:0.1",
- "imagePullPolicy": "Always",
- "args": ["--version=3.5.2-alpha", "--install-into=/opt", "--work-dir=/work-dir"],
- "volumeMounts": [
- {
- "name": "opt",
- "mountPath": "/opt/"
- },
- {
- "name": "workdir",
- "mountPath": "/work-dir"
- }
- ]
- },
+ scheduler.alpha.kubernetes.io/affinity: >
{
- "name": "bootstrap",
- "image": "java:openjdk-8-jre",
- "command": ["/work-dir/peer-finder"],
- "args": ["-on-start=\"/work-dir/on-start.sh\"", "-service=zk"],
- "env": [
- {
- "name": "POD_NAMESPACE",
- "valueFrom": {
- "fieldRef": {
- "apiVersion": "v1",
- "fieldPath": "metadata.namespace"
- }
- }
- }
- ],
- "volumeMounts": [
- {
- "name": "opt",
- "mountPath": "/opt/"
- },
- {
- "name": "workdir",
- "mountPath": "/work-dir"
- },
- {
- "name": "datadir",
- "mountPath": "/tmp/zookeeper"
- }
- ]
+ "podAntiAffinity": {
+ "requiredDuringSchedulingRequiredDuringExecution": [{
+ "labelSelector": {
+ "matchExpressions": [{
+ "key": "app",
+ "operator": "In",
+ "values": ["zk-headless"]
+ }]
+ },
+ "topologyKey": "kubernetes.io/hostname"
+ }]
+ }
}
- ]'
spec:
containers:
- - name: zk
- image: java:openjdk-8-jre
+ - name: k8szk
+ imagePullPolicy: Always
+ image: gcr.io/google_samples/k8szk:v2
+ resources:
+ requests:
+ memory: "4Gi"
+ cpu: "1"
ports:
- containerPort: 2181
name: client
- containerPort: 2888
- name: peer
+ name: server
- containerPort: 3888
name: leader-election
+ env:
+ - name : ZK_REPLICAS
+ value: "3"
+ - name : ZK_HEAP_SIZE
+ valueFrom:
+ configMapKeyRef:
+ name: zk-config
+ key: jvm.heap
+ - name : ZK_TICK_TIME
+ valueFrom:
+ configMapKeyRef:
+ name: zk-config
+ key: tick
+ - name : ZK_INIT_LIMIT
+ valueFrom:
+ configMapKeyRef:
+ name: zk-config
+ key: init
+ - name : ZK_SYNC_LIMIT
+ valueFrom:
+ configMapKeyRef:
+ name: zk-config
+ key: tick
+ - name : ZK_MAX_CLIENT_CNXNS
+ valueFrom:
+ configMapKeyRef:
+ name: zk-config
+ key: client.cnxns
+ - name: ZK_SNAP_RETAIN_COUNT
+ valueFrom:
+ configMapKeyRef:
+ name: zk-config
+ key: snap.retain
+ - name: ZK_PURGE_INTERVAL
+ valueFrom:
+ configMapKeyRef:
+ name: zk-config
+ key: purge.interval
+ - name: ZK_CLIENT_PORT
+ value: "2181"
+ - name: ZK_SERVER_PORT
+ value: "2888"
+ - name: ZK_ELECTION_PORT
+ value: "3888"
command:
- - /opt/zookeeper/bin/zkServer.sh
- args:
- - start-foreground
+ - sh
+ - -c
+ - zkGenConfig.sh && zkServer.sh start-foreground
readinessProbe:
exec:
command:
- - sh
- - -c
- - "/opt/zookeeper/bin/zkCli.sh ls /"
+ - "zkOk.sh"
+ initialDelaySeconds: 15
+ timeoutSeconds: 5
+ livenessProbe:
+ exec:
+ command:
+ - "zkOk.sh"
initialDelaySeconds: 15
timeoutSeconds: 5
volumeMounts:
- name: datadir
- mountPath: /tmp/zookeeper
- - name: opt
- mountPath: /opt/
- volumes:
- - name: opt
- emptyDir: {}
- - name: workdir
- emptyDir: {}
+ mountPath: /var/lib/zookeeper
+ securityContext:
+ runAsUser: 1000
+ fsGroup: 1000
volumeClaimTemplates:
- metadata:
name: datadir
- namespace: kafka
annotations:
volume.alpha.kubernetes.io/storage-class: anything
spec: