1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: zk-hs
  5. labels:
  6. app: zk
  7. spec:
  8. ports:
  9. - port: 2888
  10. name: server
  11. - port: 3888
  12. name: leader-election
  13. clusterIP: None
  14. selector:
  15. app: zk
  16. ---
  17. apiVersion: v1
  18. kind: Service
  19. metadata:
  20. name: zk-cs
  21. labels:
  22. app: zk
  23. spec:
  24. ports:
  25. - port: 2181
  26. name: client
  27. selector:
  28. app: zk
  29. ---
  30. apiVersion: policy/v1beta1
  31. kind: PodDisruptionBudget
  32. metadata:
  33. name: zk-pdb
  34. spec:
  35. selector:
  36. matchLabels:
  37. app: zk
  38. maxUnavailable: 1
  39. ---
  40. apiVersion: apps/v1
  41. kind: StatefulSet
  42. metadata:
  43. name: zk
  44. spec:
  45. selector:
  46. matchLabels:
  47. app: zk
  48. serviceName: zk-hs
  49. replicas: 3
  50. updateStrategy:
  51. type: RollingUpdate
  52. podManagementPolicy: Parallel
  53. template:
  54. metadata:
  55. labels:
  56. app: zk
  57. spec:
  58. affinity:
  59. nodeAffinity:
  60. requiredDuringSchedulingIgnoredDuringExecution:
  61. nodeSelectorTerms:
  62. - matchExpressions:
  63. - {key: "env", operator: In, values: ["statfull"]}
  64. imagePullSecrets:
  65. - name: harbor
  66. containers:
  67. - name: kubernetes-zookeeper
  68. imagePullPolicy: Always
  69. image: "harbor.lianhang.jetair/stateful/zookeeper:3.4.10"
  70. resources:
  71. requests:
  72. memory: "1Gi"
  73. cpu: "0.5"
  74. ports:
  75. - containerPort: 2181
  76. name: client
  77. - containerPort: 2888
  78. name: server
  79. - containerPort: 3888
  80. name: leader-election
  81. command:
  82. - sh
  83. - -c
  84. - "start-zookeeper \
  85. --servers=3 \
  86. --data_dir=/var/lib/zookeeper/data \
  87. --data_log_dir=/var/lib/zookeeper/data/log \
  88. --conf_dir=/opt/zookeeper/conf \
  89. --client_port=2181 \
  90. --election_port=3888 \
  91. --server_port=2888 \
  92. --tick_time=2000 \
  93. --init_limit=10 \
  94. --sync_limit=5 \
  95. --heap=512M \
  96. --max_client_cnxns=60 \
  97. --snap_retain_count=3 \
  98. --purge_interval=12 \
  99. --max_session_timeout=40000 \
  100. --min_session_timeout=4000 \
  101. --log_level=INFO"
  102. readinessProbe:
  103. exec:
  104. command:
  105. - sh
  106. - -c
  107. - "zookeeper-ready 2181"
  108. initialDelaySeconds: 10
  109. timeoutSeconds: 5
  110. livenessProbe:
  111. exec:
  112. command:
  113. - sh
  114. - -c
  115. - "zookeeper-ready 2181"
  116. initialDelaySeconds: 10
  117. timeoutSeconds: 5
  118. volumeMounts:
  119. - name: datadir
  120. mountPath: /var/lib/zookeeper
  121. securityContext:
  122. runAsUser: 1000
  123. fsGroup: 1000
  124. volumeClaimTemplates:
  125. - metadata:
  126. name: datadir
  127. spec:
  128. accessModes: [ "ReadWriteOnce" ]
  129. storageClassName: "glusterfs-statefull"
  130. resources:
  131. requests:
  132. storage: 10Gi
文档更新时间: 2023-02-28 10:39   作者:张尚