Phase 3: KRAFT-Konfig bei Brokern ergänzt
authorKai Moritz <kai@juplo.de>
Fri, 18 Apr 2025 21:11:17 +0000 (23:11 +0200)
committerKai Moritz <kai@juplo.de>
Sat, 19 Apr 2025 08:52:48 +0000 (10:52 +0200)
* Rolling Upgrade der Broker notwendig:
+
[source]
--
docker compose up -d kafka-1 ; docker compose logs --tail=10 -f kafka-1
docker compose up -d kafka-2 ; docker compose logs --tail=10 -f kafka-2
docker compose up -d kafka-3 ; docker compose logs --tail=10 -f kafka-3
--
* Das Setup ist so noch nicht Lauf- bzw. Migrationsfähig!
* Grund: Die Inter-Broker-Kommunikation zwischen Brokern und Controllern fehlt
** Fehler auf Broker-Seite:
+
[source]
--
Unable to register broker 1 because the controller returned error INVALID_REGISTRATION
--
** Fehler auf Controller-Seite:
+
[source]
--
Exception message: Broker does not have the current inter.broker.listener PLAINTEXT
--

docker-compose.yml

index f8ac4fc..6a43717 100644 (file)
@@ -66,12 +66,16 @@ services:
   kafka-1:
     image: confluentinc/cp-kafka:7.9.0
     environment:
+      KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
+      KAFKA_CONTROLLER_QUORUM_VOTERS: 101@controller-1:9092,102@controller-2:9092,103@controller-3:9092
       KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
+      KAFKA_ZOOKEEPER_METADATA_MIGRATION_ENABLE: true
       KAFKA_LISTENERS: BROKER://:9092, LOCALHOST://:9081
-      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT
+      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT, CONTROLLER:PLAINTEXT
       KAFKA_ADVERTISED_LISTENERS: BROKER://kafka-1:9092, LOCALHOST://localhost:9081
       KAFKA_BROKER_ID: 1
       KAFKA_INTER_BROKER_LISTENER_NAME: BROKER
+      KAFKA_INTER_BROKER_PROTOCOL_VERSION: 3.9
       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
       KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
       KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS: 1000
@@ -89,12 +93,16 @@ services:
   kafka-2:
     image: confluentinc/cp-kafka:7.9.0
     environment:
+      KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
+      KAFKA_CONTROLLER_QUORUM_VOTERS: 101@controller-1:9092,102@controller-2:9092,103@controller-3:9092
       KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
+      KAFKA_ZOOKEEPER_METADATA_MIGRATION_ENABLE: true
       KAFKA_LISTENERS: BROKER://:9092, LOCALHOST://:9082
-      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT
+      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT, CONTROLLER:PLAINTEXT
       KAFKA_ADVERTISED_LISTENERS: BROKER://kafka-2:9092, LOCALHOST://localhost:9082
       KAFKA_BROKER_ID: 2
       KAFKA_INTER_BROKER_LISTENER_NAME: BROKER
+      KAFKA_INTER_BROKER_PROTOCOL_VERSION: 3.9
       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
       KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
       KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS: 10000
@@ -117,12 +125,16 @@ services:
   kafka-3:
     image: confluentinc/cp-kafka:7.9.0
     environment:
+      KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
+      KAFKA_CONTROLLER_QUORUM_VOTERS: 101@controller-1:9092,102@controller-2:9092,103@controller-3:9092
       KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
+      KAFKA_ZOOKEEPER_METADATA_MIGRATION_ENABLE: true
       KAFKA_LISTENERS: BROKER://:9092, LOCALHOST://:9083
-      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT
+      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT, CONTROLLER:PLAINTEXT
       KAFKA_ADVERTISED_LISTENERS: BROKER://kafka-3:9092, LOCALHOST://localhost:9083
       KAFKA_BROKER_ID: 3
       KAFKA_INTER_BROKER_LISTENER_NAME: BROKER
+      KAFKA_INTER_BROKER_PROTOCOL_VERSION: 3.9
       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
       KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
       KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS: 10000