簡體   English   中英

在不同的服務器上為 Kafka 集群運行 provectus/kafka-ui

[英]Run provectus/kafka-ui for a Kafka cluster on a different Server

我在嘗試運行 provectus/kafka-ui docker 容器時遇到了一些麻煩。 我有一組服務器都在同一個 internal.network 上運行。 在其中三台服務器上實現了 Kafka 集群(Zookeeper 和 Broker)。 Broker 的結構如下所示:

192.168.0.237:9092
192.168.0.7:9092
192.168.0.54:9092

問題是沒有 Docker 實例在這些服務器上運行。 我現在想要實現的是在另一台服務器(192.168.0.8)上安裝 provectus/kafka-ui 並使其可以通過特定端口(例如 8080)從 .network 內部訪問。

我找到了一些 docker-compose.yml 示例https://github.com/provectus/kafka-ui 但是,Kafka 集群是在與 kafka-ui 相同的服務器上創建的。 在我的例子中,集群已經存在,並且在另一台服務器上只缺少 kafka-ui。 誰能告訴我如何調整 docker-compose.yml 以便 kafka-ui 可以安裝在 192.168.0.8 上並通過端口 8080 從外部訪問?

親切的問候和提前致謝

version: '3'
services: 
  kafka-ui:
    container_name: kafka-ui
    image: provectuslabs/kafka-ui:latest
    ports:
      - 8080:8080
    depends_on:
      - zookeeper
      - kafka1
    environment:
      KAFKA_CLUSTERS_0_NAME: local
      KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: kafka1:19091
      KAFKA_CLUSTERS_0_ZOOKEEPER: zookeeper:2181
      KAFKA_CLUSTERS_0_JMXPORT: 9997
      SERVER_SERVLET_CONTEXT_PATH: /kafkaui
      AUTH_TYPE: "LOGIN_FORM"
      SPRING_SECURITY_USER_NAME: test_user
      SPRING_SECURITY_USER_PASSWORD: test
  zookeeper: 
    image: confluentinc/cp-zookeeper:5.2.4
    hostname: zookeeper
    ports: 
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
    volumes: 
      - ./data/zookeeper/data:/data
      - ./data/zookeeper/datalog:/datalog
  kafka1:
    image: confluentinc/cp-kafka:5.3.1
    hostname: kafka1
    ports: 
      - "9091:9091"
    environment: 
      KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka1:19091,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9091
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
      KAFKA_BROKER_ID: 1
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: "False"
    volumes: 
      - ./data/kafka1/data:/var/lib/kafka/data
    depends_on: 
      - zookeeper
  kafka2:
    image: confluentinc/cp-kafka:5.3.1
    hostname: kafka2
    ports: 
      - "9092:9092"
    environment: 
      KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka2:19092,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9092
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_BROKER_ID: 2
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: "False"
    volumes: 
      - ./data/kafka2/data:/var/lib/kafka/data
    depends_on: 
      - zookeeper 
  kafka3:
    image: confluentinc/cp-kafka:5.3.1
    hostname: kafka3
    ports: 
      - "9093:9093"
    environment: 
      KAFKA_ADVERTISED_LISTENERS: LISTENER_DOCKER_INTERNAL://kafka3:19093,LISTENER_DOCKER_EXTERNAL://${DOCKER_HOST_IP:-127.0.0.1}:9093
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: LISTENER_DOCKER_INTERNAL:PLAINTEXT,LISTENER_DOCKER_EXTERNAL:PLAINTEXT
      KAFKA_INTER_BROKER_LISTENER_NAME: LISTENER_DOCKER_INTERNAL
      KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
      KAFKA_BROKER_ID: 3
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: "False"
    volumes: 
      - ./data/kafka3/data:/var/lib/kafka/data
    depends_on: 
      - zookeeper
  kafdrop: 
    image: obsidiandynamics/kafdrop
    restart: "no"
    ports: 
      - "9000:9000"
    environment: 
      KAFKA_BROKERCONNECT: "kafka1:19091"
    depends_on: 
      - kafka1
      - kafka2
      - kafka3

您不需要 Docker 在 Kafka 經紀人上......此外,只要正確設置了 Kafka 上的advertised.listeners ,IP 並不重要。

刪除三個 Kafka 容器,Zookeeper 容器,並將它們簡單地更改為您實際的 Kafka 代理 + Zookeeper 服務器

KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS
KAFKA_CLUSTERS_0_ZOOKEEPER

還刪除kafdrop? 因為它基本上是另一個具有重疊功能的 UI。


或者,安裝 pnpm 和 Java,您可以在沒有 Docker 的情況下運行 UI + API ,就像您在使用 Kafka 時一樣。

https://github.com/provectus/kafka-ui/tree/master/kafka-ui-react-app

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM