pv.yml

  1. apiVersion: v1
  2. kind: PersistentVolume
  3. metadata:
  4. name: zk
  5. spec:
  6. capacity:
  7. storage: 10G
  8. accessModes:
  9. - ReadWriteMany
  10. nfs:
  11. server: node1
  12. path: /home/nfs/pro

statefulset.yaml

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: zk-hs
  5. namespace: pro
  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: pro
  23. labels:
  24. app: zk
  25. spec:
  26. ports:
  27. - port: 2181
  28. name: client
  29. selector:
  30. app: zk
  31. ---
  32. apiVersion: apps/v1
  33. kind: StatefulSet
  34. metadata:
  35. name: zk
  36. namespace: pro
  37. spec:
  38. selector:
  39. matchLabels:
  40. app: zk
  41. serviceName: zk-hs
  42. replicas: 3
  43. updateStrategy:
  44. type: RollingUpdate
  45. podManagementPolicy: Parallel
  46. template:
  47. metadata:
  48. labels:
  49. app: zk
  50. spec:
  51. containers:
  52. - name: kubernetes-zookeeper
  53. imagePullPolicy: Always
  54. image: "registry.cn-beijing.aliyuncs.com/jsnail/kubernetes-zookeeper:1.0-3.4.10" #上传到阿里的镜像
  55. resources:
  56. requests:
  57. memory: "1Gi"
  58. cpu: "0.5"
  59. ports:
  60. - containerPort: 2181
  61. name: client
  62. - containerPort: 2888
  63. name: server
  64. - containerPort: 3888
  65. name: leader-election
  66. command:
  67. - sh
  68. - -c
  69. - "start-zookeeper \
  70. --servers=3 \
  71. --data_dir=/var/lib/zookeeper/data \
  72. --data_log_dir=/var/lib/zookeeper/data/log \
  73. --conf_dir=/opt/zookeeper/conf \
  74. --client_port=2181 \
  75. --election_port=3888 \
  76. --server_port=2888 \
  77. --tick_time=2000 \
  78. --init_limit=10 \
  79. --sync_limit=5 \
  80. --heap=512M \
  81. --max_client_cnxns=60 \
  82. --snap_retain_count=3 \
  83. --purge_interval=12 \
  84. --max_session_timeout=40000 \
  85. --min_session_timeout=4000 \
  86. --log_level=INFO"
  87. readinessProbe:
  88. exec:
  89. command:
  90. - sh
  91. - -c
  92. - "zookeeper-ready 2181"
  93. initialDelaySeconds: 10
  94. timeoutSeconds: 5
  95. livenessProbe:
  96. exec:
  97. command:
  98. - sh
  99. - -c
  100. - "zookeeper-ready 2181"
  101. initialDelaySeconds: 10
  102. timeoutSeconds: 5
  103. volumeMounts:
  104. - name: zk
  105. mountPath: /var/lib/zookeeper
  106. subPath: zk
  107. securityContext:
  108. runAsUser: 0 #官方的1000有时会报权限问题,我这里以root用户运行
  109. fsGroup: 0
  110. volumeClaimTemplates:
  111. - metadata:
  112. name: zk
  113. spec:
  114. accessModes: [ "ReadWriteOnce" ]
  115. storageClassName: "pro-nfs-storage"
  116. resources:
  117. requests:
  118. storage: 2Gi