deploy-tmp-kafka.yaml 2.9 KB

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