2
0

zk.yaml 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. ---
  2. apiVersion: v1
  3. kind: ConfigMap
  4. metadata:
  5. name: zk-config
  6. data:
  7. ensemble: "zk-0;zk-1;zk-2"
  8. jvm.heap: "2G"
  9. tick: "2000"
  10. init: "10"
  11. sync: "5"
  12. client.cnxns: "60"
  13. snap.retain: "3"
  14. purge.interval: "1"
  15. ---
  16. apiVersion: policy/v1beta1
  17. kind: PodDisruptionBudget
  18. metadata:
  19. name: zk-budget
  20. spec:
  21. selector:
  22. matchLabels:
  23. app: zk
  24. minAvailable: 2
  25. ---
  26. apiVersion: apps/v1beta1
  27. kind: StatefulSet
  28. metadata:
  29. name: zk
  30. spec:
  31. serviceName: zk-headless
  32. replicas: 3
  33. template:
  34. metadata:
  35. labels:
  36. app: zk
  37. annotations:
  38. pod.alpha.kubernetes.io/initialized: "true"
  39. spec:
  40. affinity:
  41. podAntiAffinity:
  42. requiredDuringSchedulingIgnoredDuringExecution:
  43. - labelSelector:
  44. matchExpressions:
  45. - key: "app"
  46. operator: In
  47. values:
  48. - zk-headless
  49. topologyKey: "kubernetes.io/hostname"
  50. volumes:
  51. - name: datadir
  52. emptyDir: {}
  53. containers:
  54. - name: k8szk
  55. imagePullPolicy: Always
  56. image: dotbalo/k8szk:v1
  57. resources:
  58. requests:
  59. memory: "256Mi"
  60. # cpu: "1"
  61. ports:
  62. - containerPort: 2181
  63. name: client
  64. - containerPort: 2888
  65. name: server
  66. - containerPort: 3888
  67. name: leader-election
  68. env:
  69. - name : ZK_ENSEMBLE
  70. valueFrom:
  71. configMapKeyRef:
  72. name: zk-config
  73. key: ensemble
  74. - name : ZK_HEAP_SIZE
  75. valueFrom:
  76. configMapKeyRef:
  77. name: zk-config
  78. key: jvm.heap
  79. - name : ZK_TICK_TIME
  80. valueFrom:
  81. configMapKeyRef:
  82. name: zk-config
  83. key: tick
  84. - name : ZK_INIT_LIMIT
  85. valueFrom:
  86. configMapKeyRef:
  87. name: zk-config
  88. key: init
  89. - name : ZK_SYNC_LIMIT
  90. valueFrom:
  91. configMapKeyRef:
  92. name: zk-config
  93. key: tick
  94. - name : ZK_MAX_CLIENT_CNXNS
  95. valueFrom:
  96. configMapKeyRef:
  97. name: zk-config
  98. key: client.cnxns
  99. - name: ZK_SNAP_RETAIN_COUNT
  100. valueFrom:
  101. configMapKeyRef:
  102. name: zk-config
  103. key: snap.retain
  104. - name: ZK_PURGE_INTERVAL
  105. valueFrom:
  106. configMapKeyRef:
  107. name: zk-config
  108. key: purge.interval
  109. - name: ZK_CLIENT_PORT
  110. value: "2181"
  111. - name: ZK_SERVER_PORT
  112. value: "2888"
  113. - name: ZK_ELECTION_PORT
  114. value: "3888"
  115. command:
  116. - sh
  117. - -c
  118. - zkGenConfig.sh && zkServer.sh start-foreground
  119. readinessProbe:
  120. exec:
  121. command:
  122. - "zkOk.sh"
  123. initialDelaySeconds: 15
  124. timeoutSeconds: 5
  125. livenessProbe:
  126. exec:
  127. command:
  128. - "zkOk.sh"
  129. initialDelaySeconds: 15
  130. timeoutSeconds: 5
  131. volumeMounts:
  132. - name: datadir
  133. mountPath: /var/lib/zookeeper
  134. securityContext:
  135. runAsUser: 1000
  136. fsGroup: 1000
  137. # volumeClaimTemplates:
  138. # - metadata:
  139. # name: datadir
  140. # spec:
  141. # accessModes: [ "ReadWriteOnce" ]
  142. # storageClassName: "gluster-heketi-2"
  143. # resources:
  144. # requests:
  145. # storage: 2Gi
  146. #