WSL2 Docker-Compose部署Kafka KRaft集群环境

238 阅读2分钟

背景

网上搜了很多没有关于WSL2部署Kafka的KRaft版本的内容,故分享。
镜像bitnami/kafka:3.5.2,内容仅供参考,需要一定的docker知识基础。

前置准备和参考

docker-compose.yml文件编写

version: "3"

networks:
  net_akuan:
    external: true

services:

  kafka01:
    image: 'bitnami/kafka:3.5.2'
    container_name: kafka01
    ports:
      - '9094:9094'
    environment:
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_KRAFT_CLUSTER_ID=9YoavaRpTCOitT3Dm2OQFA
      - KAFKA_CFG_LISTENERS=INTERNAL://:9092,CONTROLLER://:9093,EXTERNAL://:9094
      - KAFKA_CFG_ADVERTISED_LISTENERS=INTERNAL://kafka_addr1:9092,EXTERNAL://localhost:9094
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:PLAINTEXT,CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT
      - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INTERNAL

      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_NODE_ID=1
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka_addr1:9093,2@kafka_addr2:9093,3@kafka_addr3:9093
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER 
    volumes:
      - /d/docker_data/kafka/cluster/kafka1:/bitnami/kafka     
    networks:
      net_akuan:
        aliases:
          - kafka_addr1

  kafka02:
    image: 'bitnami/kafka:3.5.2'
    container_name: kafka02
    ports:
      - '9095:9095'
    environment:
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_KRAFT_CLUSTER_ID=9YoavaRpTCOitT3Dm2OQFB
      - KAFKA_CFG_LISTENERS=INTERNAL://:9092,CONTROLLER://:9093,EXTERNAL://:9095
      - KAFKA_CFG_ADVERTISED_LISTENERS=INTERNAL://kafka_addr2:9092,EXTERNAL://localhost:9095
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:PLAINTEXT,CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT
      - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INTERNAL

      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_NODE_ID=2
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka_addr1:9093,2@kafka_addr2:9093,3@kafka_addr3:9093
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER 
    volumes:
      - /d/docker_data/kafka/cluster/kafka2:/bitnami/kafka       
    networks:
      net_akuan:
        aliases:
          - kafka_addr2

  kafka03:
    image: 'bitnami/kafka:3.5.2'
    container_name: kafka03
    ports:
      - '9096:9096'
    environment:
      - ALLOW_PLAINTEXT_LISTENER=yes
      - KAFKA_KRAFT_CLUSTER_ID=9YoavaRpTCOitT3Dm2OQFC
      - KAFKA_CFG_LISTENERS=INTERNAL://:9092,CONTROLLER://:9093,EXTERNAL://:9096
      - KAFKA_CFG_ADVERTISED_LISTENERS=INTERNAL://kafka_addr3:9092,EXTERNAL://localhost:9096
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:PLAINTEXT,CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT
      - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=INTERNAL

      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_NODE_ID=3
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka_addr1:9093,2@kafka_addr2:9093,3@kafka_addr3:9093
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER 
    volumes:
      - /d/docker_data/kafka/cluster/kafka3:/bitnami/kafka
    networks:
      net_akuan:
        aliases:
          - kafka_addr3