Kafka Statefulsets
требует безголового обслуживания для доступа к брокерам.Вы можете изменить безголовый сервис на Type = NodePort и установить externalTrafficPolicy=Local
.Это позволяет обойти внутреннюю балансировку нагрузки Сервиса, и трафик, предназначенный для определенного узла на порте этого узла, будет работать только в том случае, если на этом узле находится модуль Kafka.
apiVersion: v1
kind: Service
metadata:
name: kafka-nodeport
labels:
app: kafka
spec:
externaTrafficPolicy: Local
type: NodePort
ports:
- port: 9092
nodePort: 30092
name: server
selector:
app: kafka
Например, у нас есть два узла nodeA иузел B, узел B запускает модуль Кафки.узел A: 30092 не будет подключаться, но узел B: 30092 будет подключаться к модулю kafka, работающему на узле B.
Надеюсь, это поможет.