apiVersion: apps/v1 kind: StatefulSet metadata: name: kafka-statefulset labels: app: kafka spec: replicas: 1 selector: matchLabels: app: kafka serviceName: "kafka-service" template: metadata: labels: app: kafka spec: containers: - name: kafka image: bitnami/kafka:3.5.1 imagePullPolicy: IfNotPresent resources: limits: memory: "2Gi" cpu: "1000m" requests: memory: "1Gi" cpu: "500m" ports: - containerPort: 9092 # PLAINTEXT - containerPort: 9093 # CONTROLLER - containerPort: 9094 # EXTERNAL # command: # - /bin/bash # - "-c" # - | # # /opt/bitnami/scripts/kafka/run.sh & /opt/bitnami/kafka/create-topic.sh; wait # # /opt/bitnami/scripts/kafka/entrypoint.sh && /opt/bitnami/scripts/kafka/setup.sh && /opt/bitnami/scripts/kafka/run.sh # & while ! echo > /dev/tcp/localhost/9092; do # echo "Waiting for Kafka to start..." # sleep 5 # done # /opt/bitnami/kafka/create-topic.sh # tail -f /dev/null env: - name: TZ value: "Asia/Shanghai" - name: KAFKA_CFG_NODE_ID value: "0" - name: KAFKA_CFG_PROCESS_ROLES value: "controller,broker" - name: KAFKA_CFG_CONTROLLER_QUORUM_VOTERS value: "0@kafka-service:9093" - name: KAFKA_CFG_LISTENERS value: "PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094" - name: KAFKA_CFG_ADVERTISED_LISTENERS value: "PLAINTEXT://kafka-service:9092,EXTERNAL://kafka-service:19094" - name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP value: "CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT" - name: KAFKA_CFG_CONTROLLER_LISTENER_NAMES value: "CONTROLLER" volumeMounts: - name: kafka-data mountPath: /bitnami/kafka - name: kafka-scripts mountPath: /opt/bitnami/kafka/create-topic.sh subPath: create-topic.sh - name: create-topics image: bitnami/kafka:3.5.1 command: - /bin/bash - "-c" - | /opt/bitnami/kafka/create-topic.sh && \ tail -f /dev/null volumeMounts: - name: kafka-scripts mountPath: /opt/bitnami/kafka/create-topic.sh subPath: create-topic.sh - name: kafka-data mountPath: /bitnami/kafka volumes: - name: kafka-scripts configMap: name: openim-config defaultMode: 0755 items: - key: create-topic.sh path: create-topic.sh - name: kafka-data persistentVolumeClaim: claimName: kafka-pvc --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: kafka-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi