deploy-tmp-kafka.yaml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. #部署 Service Headless,用于Kafka间相互通信
  2. apiVersion: v1
  3. kind: Service
  4. metadata:
  5. name: kafka-headless
  6. namespace: [ENV]
  7. labels:
  8. app: kafka
  9. spec:
  10. type: ClusterIP
  11. clusterIP: None
  12. ports:
  13. - name: kafka
  14. port: 9093
  15. targetPort: kafka
  16. selector:
  17. app: kafka
  18. ---
  19. #部署 Service,用于外部访问 Kafka
  20. apiVersion: v1
  21. kind: Service
  22. metadata:
  23. name: kafka
  24. namespace: [ENV]
  25. labels:
  26. app: kafka
  27. spec:
  28. type: ClusterIP
  29. ports:
  30. - name: kafka
  31. port: 9093
  32. targetPort: kafka
  33. selector:
  34. app: kafka
  35. ---
  36. apiVersion: apps/v1
  37. kind: StatefulSet
  38. metadata:
  39. namespace: [ENV]
  40. name: "kafka"
  41. labels:
  42. app: kafka
  43. spec:
  44. selector:
  45. matchLabels:
  46. app: kafka
  47. serviceName: kafka-headless
  48. podManagementPolicy: "Parallel"
  49. replicas: 3
  50. updateStrategy:
  51. type: "RollingUpdate"
  52. template:
  53. metadata:
  54. name: "kafka"
  55. labels:
  56. app: kafka
  57. spec:
  58. initContainers:
  59. - name: init
  60. image: hub.evbj.easou.com/dev/busybox
  61. command: [ "chmod","777","-R","/data" ]
  62. imagePullPolicy: Always
  63. volumeMounts:
  64. - name: volume
  65. mountPath: /data
  66. containers:
  67. - name: kafka
  68. image: "docker.io/bitnami/kafka:2.12-2.4.1"
  69. imagePullPolicy: Always
  70. resources:
  71. limits:
  72. cpu: 500m
  73. memory: 512Mi
  74. requests:
  75. cpu: 250m
  76. memory: 256Mi
  77. env:
  78. - name: MY_POD_IP
  79. valueFrom:
  80. fieldRef:
  81. fieldPath: status.podIP
  82. - name: MY_POD_NAME
  83. valueFrom:
  84. fieldRef:
  85. fieldPath: metadata.name
  86. - name: KAFKA_CFG_ZOOKEEPER_CONNECT
  87. value: "zk-cs.[ENV].svc.cluster.local:2181" #Zookeeper Service 名称
  88. - name: KAFKA_PORT_NUMBER
  89. value: "9093"
  90. - name: KAFKA_CFG_LISTENERS
  91. value: "PLAINTEXT://:$(KAFKA_PORT_NUMBER)"
  92. - name: KAFKA_CFG_ADVERTISED_LISTENERS
  93. value: 'PLAINTEXT://$(MY_POD_NAME).kafka-headless:$(KAFKA_PORT_NUMBER)'
  94. - name: ALLOW_PLAINTEXT_LISTENER
  95. value: "yes"
  96. - name: KAFKA_HEAP_OPTS
  97. value: "-Xmx512m -Xms512m"
  98. - name: KAFKA_CFG_LOGS_DIRS
  99. value: /data/kafka/data
  100. - name: JMX_PORT
  101. value: "9988"
  102. ports:
  103. - name: kafka
  104. containerPort: 9093
  105. livenessProbe:
  106. tcpSocket:
  107. port: kafka
  108. initialDelaySeconds: 10
  109. periodSeconds: 10
  110. timeoutSeconds: 5
  111. successThreshold: 1
  112. failureThreshold: 2
  113. readinessProbe:
  114. tcpSocket:
  115. port: kafka
  116. initialDelaySeconds: 5
  117. periodSeconds: 10
  118. timeoutSeconds: 5
  119. successThreshold: 1
  120. failureThreshold: 6
  121. volumeMounts:
  122. - name: data
  123. mountPath: /data/kafka
  124. volumeClaimTemplates:
  125. - metadata:
  126. name: data
  127. spec:
  128. storageClassName: rbd #指定为上面创建的 storageclass
  129. accessModes:
  130. - "ReadWriteOnce"
  131. resources:
  132. requests:
  133. storage: 100Gi