https://github.com/pravega/zookeeper-operator

    1. apiVersion: v1
    2. kind: Service
    3. metadata:
    4. name: zk-hs
    5. namespace: zookeeper-test
    6. labels:
    7. app: zk
    8. spec:
    9. ports:
    10. - port: 2888
    11. name: server
    12. - port: 3888
    13. name: leader-election
    14. clusterIP: None
    15. selector:
    16. app: zk
    17. ---
    18. apiVersion: v1
    19. kind: Service
    20. metadata:
    21. name: zk-cs
    22. namespace: zookeeper-test
    23. labels:
    24. app: zk
    25. spec:
    26. type: NodePort
    27. ports:
    28. - port: 2181
    29. targetPort: 2181
    30. name: client
    31. nodePort: 31666
    32. selector:
    33. app: zk
    34. ---
    35. apiVersion: policy/v1beta1
    36. kind: PodDisruptionBudget
    37. metadata:
    38. name: zk-pdb
    39. namespace: zookeeper-test
    40. spec:
    41. selector:
    42. matchLabels:
    43. app: zk
    44. maxUnavailable: 1
    45. ---
    46. apiVersion: apps/v1
    47. kind: StatefulSet
    48. metadata:
    49. name: zok
    50. namespace: zookeeper-test
    51. spec:
    52. serviceName: zk-hs
    53. replicas: 3
    54. selector:
    55. matchLabels:
    56. app: zk
    57. template:
    58. metadata:
    59. labels:
    60. app: zk
    61. spec:
    62. affinity:
    63. podAntiAffinity:
    64. requiredDuringSchedulingIgnoredDuringExecution:
    65. - labelSelector:
    66. matchExpressions:
    67. - key: "app"
    68. operator: In
    69. values:
    70. - zk
    71. topologyKey: "kubernetes.io/hostname"
    72. containers:
    73. - name: kubernetes-zookeeper
    74. imagePullPolicy: Always
    75. image: 192.168.13.79:6278/middleware/zookeeper:v3.4.10
    76. resources:
    77. requests:
    78. memory: "1Gi"
    79. cpu: "0.5"
    80. ports:
    81. - containerPort: 2181
    82. name: client
    83. - containerPort: 2888
    84. name: server
    85. - containerPort: 3888
    86. name: leader-election
    87. command:
    88. - sh
    89. - -c
    90. - "start-zookeeper \
    91. --servers=3 \
    92. --data_dir=/var/lib/zookeeper/data \
    93. --data_log_dir=/var/lib/zookeeper/data/log \
    94. --conf_dir=/opt/zookeeper/conf \
    95. --client_port=2181 \
    96. --election_port=3888 \
    97. --server_port=2888 \
    98. --tick_time=2000 \
    99. --init_limit=10 \
    100. --sync_limit=5 \
    101. --heap=512M \
    102. --max_client_cnxns=60 \
    103. --snap_retain_count=3 \
    104. --purge_interval=12 \
    105. --max_session_timeout=40000 \
    106. --min_session_timeout=4000 \
    107. --log_level=INFO"
    108. readinessProbe:
    109. exec:
    110. command:
    111. - sh
    112. - -c
    113. - "zookeeper-ready 2181"
    114. initialDelaySeconds: 10
    115. timeoutSeconds: 5
    116. livenessProbe:
    117. exec:
    118. command:
    119. - sh
    120. - -c
    121. - "zookeeper-ready 2181"
    122. initialDelaySeconds: 10
    123. timeoutSeconds: 5
    124. volumeMounts:
    125. - name: datadir
    126. mountPath: /var/lib/zookeeper
    127. volumeClaimTemplates:
    128. - metadata:
    129. name: datadir
    130. spec:
    131. accessModes: [ "ReadWriteOnce" ]
    132. resources:
    133. requests:
    134. storage: 1Gi
    [root@UR-20210425NAMA ~]# for i in 0 1 2; do kubectl -n zookeeper-test exec zok-$i zkServer.sh status; done
    kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl kubectl exec [POD] -- [COMMAND] instead.
    ZooKeeper JMX enabled by default
    Using config: /usr/bin/../etc/zookeeper/zoo.cfg
    Mode: follower
    kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl kubectl exec [POD] -- [COMMAND] instead.
    ZooKeeper JMX enabled by default
    Using config: /usr/bin/../etc/zookeeper/zoo.cfg
    Mode: leader
    kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl kubectl exec [POD] -- [COMMAND] instead.
    ZooKeeper JMX enabled by default
    Using config: /usr/bin/../etc/zookeeper/zoo.cfg
    Mode: follower
    [root@UR-20210425NAMA ~]#
    

    image.png