|
@@ -0,0 +1,148 @@
|
|
|
+---
|
|
|
+apiVersion: v1
|
|
|
+kind: ConfigMap
|
|
|
+metadata:
|
|
|
+ name: zk-config
|
|
|
+data:
|
|
|
+ ensemble: "zk-0;zk-1;zk-2"
|
|
|
+ jvm.heap: "2G"
|
|
|
+ tick: "2000"
|
|
|
+ init: "10"
|
|
|
+ sync: "5"
|
|
|
+ client.cnxns: "60"
|
|
|
+ snap.retain: "3"
|
|
|
+ purge.interval: "1"
|
|
|
+---
|
|
|
+apiVersion: policy/v1beta1
|
|
|
+kind: PodDisruptionBudget
|
|
|
+metadata:
|
|
|
+ name: zk-budget
|
|
|
+spec:
|
|
|
+ selector:
|
|
|
+ matchLabels:
|
|
|
+ app: zk
|
|
|
+ minAvailable: 2
|
|
|
+---
|
|
|
+apiVersion: apps/v1beta1
|
|
|
+kind: StatefulSet
|
|
|
+metadata:
|
|
|
+ name: zk
|
|
|
+spec:
|
|
|
+ serviceName: zk-headless
|
|
|
+ replicas: 3
|
|
|
+ template:
|
|
|
+ metadata:
|
|
|
+ labels:
|
|
|
+ app: zk
|
|
|
+ annotations:
|
|
|
+ pod.alpha.kubernetes.io/initialized: "true"
|
|
|
+
|
|
|
+ spec:
|
|
|
+ affinity:
|
|
|
+ podAntiAffinity:
|
|
|
+ requiredDuringSchedulingIgnoredDuringExecution:
|
|
|
+ - labelSelector:
|
|
|
+ matchExpressions:
|
|
|
+ - key: "app"
|
|
|
+ operator: In
|
|
|
+ values:
|
|
|
+ - zk-headless
|
|
|
+ topologyKey: "kubernetes.io/hostname"
|
|
|
+ volumes:
|
|
|
+ - name: datadir
|
|
|
+ emptyDir: {}
|
|
|
+ containers:
|
|
|
+ - name: k8szk
|
|
|
+ imagePullPolicy: Always
|
|
|
+ image: dotbalo/k8szk:v1
|
|
|
+ resources:
|
|
|
+ requests:
|
|
|
+ memory: "256Mi"
|
|
|
+ # cpu: "1"
|
|
|
+ ports:
|
|
|
+ - containerPort: 2181
|
|
|
+ name: client
|
|
|
+ - containerPort: 2888
|
|
|
+ name: server
|
|
|
+ - containerPort: 3888
|
|
|
+ name: leader-election
|
|
|
+ env:
|
|
|
+ - name : ZK_ENSEMBLE
|
|
|
+ valueFrom:
|
|
|
+ configMapKeyRef:
|
|
|
+ name: zk-config
|
|
|
+ key: ensemble
|
|
|
+ - 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:
|
|
|
+ - sh
|
|
|
+ - -c
|
|
|
+ - zkGenConfig.sh && zkServer.sh start-foreground
|
|
|
+ readinessProbe:
|
|
|
+ exec:
|
|
|
+ command:
|
|
|
+ - "zkOk.sh"
|
|
|
+ initialDelaySeconds: 15
|
|
|
+ timeoutSeconds: 5
|
|
|
+ livenessProbe:
|
|
|
+ exec:
|
|
|
+ command:
|
|
|
+ - "zkOk.sh"
|
|
|
+ initialDelaySeconds: 15
|
|
|
+ timeoutSeconds: 5
|
|
|
+ volumeMounts:
|
|
|
+ - name: datadir
|
|
|
+ mountPath: /var/lib/zookeeper
|
|
|
+ securityContext:
|
|
|
+ runAsUser: 1000
|
|
|
+ fsGroup: 1000
|
|
|
+
|
|
|
+# volumeClaimTemplates:
|
|
|
+# - metadata:
|
|
|
+# name: datadir
|
|
|
+# spec:
|
|
|
+# accessModes: [ "ReadWriteOnce" ]
|
|
|
+# storageClassName: "gluster-heketi-2"
|
|
|
+# resources:
|
|
|
+# requests:
|
|
|
+# storage: 2Gi
|
|
|
+#
|