Как выставить кафку для внешнего доступа после сборки кластера кафка на кубернетес? - PullRequest
0 голосов
/ 11 декабря 2018

Я строю кластер kafka на kubernetes, следуя этому руководству https://github.com/kubernetes/contrib/tree/master/statefulsets/kafka,, он хорошо работает для отправки / создания сообщений от kubernetes.когда я пытаюсь открыть кластер kafka с помощью NodePort следующим образом, клиенты kafka пытаются получить / создать сообщение с адреса 10.xx.xx.xx: 30092

не удастся:

apiVersion: v1
kind: Service
metadata:
  name: kafka-nodeport
  labels:
    app: kafka
spec:
  type: NodePort
  ports:
  - port: 9092
    nodePort: 30092
    name: server
  selector:
    app: kafka

Почему это произошло и как выставить службу kafka?

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Вы должны сделать две вещи:

1) создать либо ресурс службы типа NodePort (как вы это сделали), либо ресурс Ingress.

2) Установите два свойства ниже вKafka: ADVERTISED_HOST и ADVERTISED_PORT.

Kafka зарегистрируется в Zookeeper с IP-адресом узла, внутри сети контейнеров это внутренний IP-адрес, который он использовал, поэтому мы должны установить эти свойства, чтобы сообщить Кафкечтобы зарегистрировать их.

Надеюсь, что это поможет!

0 голосов
/ 11 декабря 2018

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.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...