Files
com-jbl/kafka/kafka-broker.yaml
2025-12-10 21:07:43 +08:00

111 lines
2.8 KiB
YAML

apiVersion: apps/v1
kind: StatefulSet
metadata:
name: kafka-broker
namespace: kafka
labels:
app: kafka-broker
spec:
serviceName: kafka-broker-headless
replicas: 3
selector:
matchLabels:
app: kafka-broker
template:
metadata:
labels:
app: kafka-broker
spec:
containers:
- name: kafka-broker
image: xxx.xuanyuan.run/apache/kafka:latest
ports:
- containerPort: 9092
name: client
- containerPort: 19092
name: internal
env:
- name: KAFKA_NODE_ID
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: KAFKA_PROCESS_ROLES
value: "broker"
- name: KAFKA_LISTENERS
value: "PLAINTEXT://:19092,PLAINTEXT_HOST://:9092"
- name: KAFKA_ADVERTISED_LISTENERS
value: "PLAINTEXT://$(MY_POD_NAME).kafka-broker-headless.kafka.svc.cluster.local:19092,PLAINTEXT_HOST://localhost:9092"
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: KAFKA_INTER_BROKER_LISTENER_NAME
value: "PLAINTEXT"
- name: KAFKA_CONTROLLER_LISTENER_NAMES
value: "CONTROLLER"
- name: KAFKA_LISTENER_SECURITY_PROTOCOL_MAP
value: "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT"
- name: KAFKA_CONTROLLER_QUORUM_VOTERS
value: "1@kafka-controller-0.kafka-controller-headless.kafka.svc.cluster.local:9093,2@kafka-controller-1.kafka-controller-headless.kafka.svc.cluster.local:9093,3@kafka-controller-2.kafka-controller-headless.kafka.svc.cluster.local:9093"
- name: KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS
value: "0"
volumeMounts:
- name: kafka-data
mountPath: /tmp/kafka-logs
readinessProbe:
tcpSocket:
port: 9092
initialDelaySeconds: 15
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 9092
initialDelaySeconds: 30
periodSeconds: 10
volumeClaimTemplates:
- metadata:
name: kafka-data
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "dynamic-storage-class"
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: Service
metadata:
name: kafka-broker-headless
namespace: kafka
labels:
app: kafka-broker
spec:
ports:
- port: 9092
name: client
- port: 19092
name: internal
clusterIP: None
selector:
app: kafka-broker
---
apiVersion: v1
kind: Service
metadata:
name: kafka-broker-external
namespace: kafka
labels:
app: kafka-broker
spec:
type: NodePort
ports:
- port: 9092
targetPort: 9092
nodePort: 30092
name: client
selector:
app: kafka-broker