Невозможно выдать сообщение kafka на kubernetes - PullRequest
0 голосов
/ 04 мая 2020

Я получаю сообщение об ошибке на Кафке: [2020-05-04 12:46:59,477] ERROR [KafkaApi-1001] Number of alive brokers '0' does not meet the required replication factor '1' for the offsets topic (configured via 'offsets.topic.replication.factor'). This error can be ignored if the cluster is starting up and not all brokers are up yet. (kafka.server.KafkaApis)

И ошибка, когда я пытаюсь создать сообщение: 2020-05-04 12:47:45.221 WARN 1 --- [ad | producer-1] org.apache.kafka.clients.NetworkClient : [Producer clientId=producer-1] Error while fetching metadata with correlation id 10 : {activate-user=LEADER_NOT_AVAILABLE}

С использованием docker -составить все работает нормально, но Я пытаюсь переместить это также к k8s. Я запустил этот процесс с помощью инструмента kompose convert и изменил вывод.

Вот фрагмент docker -компса:

  zookeeper:
    container_name: zookeeper
    image: wurstmeister/zookeeper:latest
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
    ports:
      - "2181:2181"
  mail-sender-kafka:
    container_name: mail-sender-kafka
    image: wurstmeister/kafka:2.12-2.2.1
    environment:
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_HOST_NAME: mail-sender-kafka
      KAFKA_CREATE_TOPICS: "activate-user:1:1"
    ports:
      - 9092:9092
    depends_on:
      - zookeeper
  account-service:
    image: szastarek/food-delivery-account-service:${TAG}
    container_name: account-service
    environment:
      - KAFKA_URI=mail-sender-kafka:9092
    depends_on:
      - config-server
      - account-service-db
  mail-sender:
    image: szastarek/food-delivery-mail-sender:${TAG}
    container_name: mail-sender
    environment:
      - KAFKA_URI=mail-sender-kafka:9092
    depends_on:
      - config-server

После преобразования его в k8s я получил zookeeper-deploy, zookeeper-service, mail-sender-deploy, mail-sender-kafka-deploy, mail-sender-kafka-service.

Я также пытался добавить некоторые переменные env и на данный момент, это выглядит так:

 spec:
      containers:
      - env:
        - name: KAFKA_ADVERTISED_HOST_NAME
          value: mail-sender-kafka
        - name: KAFKA_ADVERTISED_PORT
          value: '9092'
        - name: ADVERTISED_LISTENERS
          value: PLAINTEXT://mail-sender-kafka:9092
        - name: KAFKA_CREATE_TOPICS
          value: activate-user:1:1
        - name: KAFKA_ZOOKEEPER_CONNECT
          value: zookeeper:2181

Я обнаружил одну вещь, которая, вероятно, связана с проблемой. Когда я запускаю ping mail-sender-kafka на docker, я могу достичь себя. Но если я подключаюсь к kubernetes mail-sender-kafka pod, я не могу пропинговать себя.

После обновления файла hosts он работает. Было что-то вроде:

172.18.0.24     mail-sender-kafka-xxxxxxx

И я изменил его на

172.18.0.24     mail-sender-kafka

Любые советы о том, как это исправить?

...