deploy-tmp-kafka.yaml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: kafka-svc
  5. namespace: qa
  6. labels:
  7. app: kafka
  8. spec:
  9. ports:
  10. - port: 9093
  11. name: server
  12. clusterIP: None #创建无头服务,如果需要对外暴露端口可自行创建service
  13. selector:
  14. app: kafka
  15. ---
  16. apiVersion: policy/v1beta1
  17. kind: PodDisruptionBudget
  18. metadata:
  19. name: kafka-pdb
  20. namespace: qa
  21. spec:
  22. selector:
  23. matchLabels:
  24. app: kafka
  25. minAvailable: 2
  26. ---
  27. apiVersion: apps/v1
  28. kind: StatefulSet
  29. metadata:
  30. name: kafka
  31. namespace: qa
  32. spec:
  33. selector:
  34. matchLabels:
  35. app: kafka
  36. serviceName: kafka-svc
  37. replicas: 3
  38. updateStrategy:
  39. type: RollingUpdate
  40. podManagementPolicy: OrderedReady
  41. template:
  42. metadata:
  43. name: kafka
  44. labels:
  45. app: kafka
  46. spec:
  47. affinity:
  48. podAntiAffinity:
  49. requiredDuringSchedulingIgnoredDuringExecution:
  50. - labelSelector:
  51. matchExpressions:
  52. - key: "app"
  53. operator: In
  54. values:
  55. - kafka
  56. topologyKey: "kubernetes.io/hostname"
  57. initContainers:
  58. - name: init
  59. image: hub.evbj.easou.com/dev/busybox
  60. command: [ "chmod","777","-R","/data" ]
  61. imagePullPolicy: Always
  62. volumeMounts:
  63. - name: data
  64. mountPath: /data
  65. containers:
  66. - name: kafka
  67. image: "docker.io/bitnami/kafka:2.4.1-debian-10-r58"
  68. imagePullPolicy: Always
  69. resources:
  70. limits:
  71. cpu: 500m
  72. memory: 512Mi
  73. requests:
  74. cpu: 250m
  75. memory: 256Mi
  76. env:
  77. - name: KAFKA_POD_IP
  78. valueFrom:
  79. fieldRef:
  80. fieldPath: status.podIP
  81. - name: KAFKA_POD_NAME
  82. valueFrom:
  83. fieldRef:
  84. fieldPath: metadata.name
  85. - name: KAFKA_CFG_ZOOKEEPER_CONNECT
  86. value: "zk-cs.qa.svc.cluster.local:2181"
  87. - name: KAFKA_PORT_NUMBER
  88. value: "9093"
  89. - name: KAFKA_CFG_LISTENERS
  90. value: "PLAINTEXT://:$(KAFKA_PORT_NUMBER)"
  91. - name: KAFKA_CFG_ADVERTISED_LISTENERS
  92. value: 'PLAINTEXT://$(KAFKA_POD_NAME).kafka-svc:$(KAFKA_PORT_NUMBER)'
  93. - name: ALLOW_PLAINTEXT_LISTENER
  94. value: "yes"
  95. - name: KAFKA_HEAP_OPTS
  96. value: "-Xmx512m -Xms512m"
  97. - name: KAFKA_CFG_LOGS_DIRS
  98. value: /data/kafka/data
  99. - name: JMX_PORT
  100. value: "9988"
  101. ports:
  102. - name: kafka
  103. containerPort: 9093
  104. livenessProbe:
  105. tcpSocket:
  106. port: kafka
  107. initialDelaySeconds: 10
  108. periodSeconds: 10
  109. timeoutSeconds: 5
  110. successThreshold: 1
  111. failureThreshold: 2
  112. readinessProbe:
  113. tcpSocket:
  114. port: kafka
  115. initialDelaySeconds: 5
  116. periodSeconds: 10
  117. timeoutSeconds: 5
  118. successThreshold: 1
  119. failureThreshold: 6
  120. volumeMounts:
  121. - name: data
  122. mountPath: /data/kafka
  123. volumeClaimTemplates:
  124. - metadata:
  125. name: data
  126. spec:
  127. storageClassName: rbd
  128. accessModes:
  129. - "ReadWriteOnce"
  130. resources:
  131. requests:
  132. storage: 100Gi