|
@@ -0,0 +1,144 @@
|
|
|
+---
|
|
|
+apiVersion: apps/v1
|
|
|
+kind: StatefulSet
|
|
|
+metadata:
|
|
|
+ name: zk
|
|
|
+ namespace: qa
|
|
|
+spec:
|
|
|
+ selector:
|
|
|
+ matchLabels:
|
|
|
+ app: zk
|
|
|
+ serviceName: zk-hs
|
|
|
+ replicas: 3
|
|
|
+ updateStrategy:
|
|
|
+ type: RollingUpdate
|
|
|
+ podManagementPolicy: OrderedReady
|
|
|
+ template:
|
|
|
+ metadata:
|
|
|
+ labels:
|
|
|
+ app: zk
|
|
|
+ spec:
|
|
|
+ terminationGracePeriodSeconds: 180
|
|
|
+ affinity:
|
|
|
+ podAntiAffinity:
|
|
|
+ requiredDuringSchedulingIgnoredDuringExecution:
|
|
|
+ - labelSelector:
|
|
|
+ matchExpressions:
|
|
|
+ - key: "app"
|
|
|
+ operator: In
|
|
|
+ values:
|
|
|
+ - zk
|
|
|
+ topologyKey: "kubernetes.io/hostname"
|
|
|
+ containers:
|
|
|
+ - name: kubernetes-zookeeper
|
|
|
+ imagePullPolicy: Always
|
|
|
+ image: "leolee32/kubernetes-library:kubernetes-zookeeper1.0-3.4.10"
|
|
|
+ resources:
|
|
|
+ requests:
|
|
|
+ memory: "1Gi"
|
|
|
+ cpu: "0.5"
|
|
|
+ ports:
|
|
|
+ - containerPort: 2181
|
|
|
+ name: client
|
|
|
+ - containerPort: 2888
|
|
|
+ name: server
|
|
|
+ - containerPort: 3888
|
|
|
+ name: leader-election
|
|
|
+ command:
|
|
|
+ - sh
|
|
|
+ - -c
|
|
|
+ - "start-zookeeper \
|
|
|
+ --servers=3 \
|
|
|
+ --data_dir=/data/zookeeper \
|
|
|
+ --data_log_dir=/data/zookeeper/log \
|
|
|
+ --conf_dir=/opt/zookeeper/conf \
|
|
|
+ --client_port=2181 \
|
|
|
+ --election_port=3888 \
|
|
|
+ --server_port=2888 \
|
|
|
+ --tick_time=2000 \
|
|
|
+ --init_limit=10 \
|
|
|
+ --sync_limit=5 \
|
|
|
+ --heap=512M \
|
|
|
+ --max_client_cnxns=60 \
|
|
|
+ --snap_retain_count=3 \
|
|
|
+ --purge_interval=12 \
|
|
|
+ --max_session_timeout=40000 \
|
|
|
+ --min_session_timeout=4000 \
|
|
|
+ --log_level=INFO"
|
|
|
+ readinessProbe:
|
|
|
+ exec:
|
|
|
+ command:
|
|
|
+ - sh
|
|
|
+ - -c
|
|
|
+ - "zookeeper-ready 2181"
|
|
|
+ initialDelaySeconds: 10
|
|
|
+ timeoutSeconds: 5
|
|
|
+ livenessProbe:
|
|
|
+ exec:
|
|
|
+ command:
|
|
|
+ - sh
|
|
|
+ - -c
|
|
|
+ - "zookeeper-ready 2181"
|
|
|
+ initialDelaySeconds: 10
|
|
|
+ timeoutSeconds: 5
|
|
|
+ volumeMounts:
|
|
|
+ - name: volume
|
|
|
+ mountPath: /data/zookeeper
|
|
|
+ securityContext:
|
|
|
+ runAsUser: 1000
|
|
|
+ fsGroup: 1000
|
|
|
+ volumeClaimTemplates:
|
|
|
+ - metadata:
|
|
|
+ name: volume
|
|
|
+ annotations:
|
|
|
+ volume.alpha.kubernetes.io/storage-class: anything
|
|
|
+ spec:
|
|
|
+ accessModes: [ "ReadWriteOnce" ]
|
|
|
+ storageClassName: rbd
|
|
|
+ resources:
|
|
|
+ requests:
|
|
|
+ storage: 5Gi
|
|
|
+---
|
|
|
+apiVersion: v1
|
|
|
+kind: Service
|
|
|
+metadata:
|
|
|
+ name: zk-hs
|
|
|
+ namespace: qa
|
|
|
+ labels:
|
|
|
+ app: zk
|
|
|
+spec:
|
|
|
+ ports:
|
|
|
+ - port: 2888
|
|
|
+ name: server
|
|
|
+ - port: 3888
|
|
|
+ name: leader-election
|
|
|
+ clusterIP: None
|
|
|
+ selector:
|
|
|
+ app: zk
|
|
|
+---
|
|
|
+apiVersion: v1
|
|
|
+kind: Service
|
|
|
+metadata:
|
|
|
+ name: zk-cs
|
|
|
+ namespace: qa
|
|
|
+ labels:
|
|
|
+ app: zk
|
|
|
+spec:
|
|
|
+ type: NodePort
|
|
|
+ ports:
|
|
|
+ - port: 2181
|
|
|
+ name: client
|
|
|
+ nodePort: 31812
|
|
|
+ selector:
|
|
|
+ app: zk
|
|
|
+---
|
|
|
+apiVersion: policy/v1beta1
|
|
|
+kind: PodDisruptionBudget
|
|
|
+metadata:
|
|
|
+ name: zk-pdb
|
|
|
+ namespace: qa
|
|
|
+spec:
|
|
|
+ selector:
|
|
|
+ matchLabels:
|
|
|
+ app: zk
|
|
|
+ maxUnavailable: 1
|