Apache Kafka mit docker-compose

In diesem Tutorial möchte ich euch gerne zeigen wie ihr für eure lokale Entwicklung einen eigenen Apache Kafka Container mit docker-compose aufsetzt.
Apache-Kafka

Apache Kafka mit Docker Compose erstellen

Einleitung

In diesem Tutorial möchte ich euch zeigen, wie ihr für eure lokale Entwicklungsumgebung einen eigenen Apache Kafka Container mit docker-compose aufsetzt. Ihr werdet in diesem Tutorial erfahren wo ihr euch einen geeigneten Apache Kafka Docker Image herunterlädt und wie ihr diesen nach euren Bedürfnissen anpassen könnt. Anschließend werden wir das von uns angepasste Docker Image mit docker-compose starten & stoppen.

Voraussetzung

  • Existierende docker Installation (Link)
  • Existierende docker-compose Installation (Link)

Apache Kafka Docker Image herunterladen

In der Docker Welt stehen uns schon fertige Images zur Verfügung die wir nutzen können. Passende und vorgefertigte Images finden wir bei DockerHub. Nachdem wir die Seite aufgerufen haben, können wir oben auf der Seite nach Images suchen. Hier geben wir nun „Apache Kafka“ ein und starten die Suche. In der darauffolgenden Seite wird uns eine Liste von fertigen Images gezeigt, die wir verwenden können. Hier suchen wir uns das Image „wurstmeister/kafka“ aus. Lasst euch Bitte nicht von dem Namen irritieren! Es handelt sich um ein recht seriöses Image, welches in regelmäßigen Abständen aktualisiert wird.

Um das Image von Wurstmeister nutzen zu können, müssen wir es erst mal mit Git das Repository von Wurstmeister auf unserem Rechner clonen. Mit dem Linux Consolen Befehl „git clone https://github.com/wurstmeister/kafka-docker.git“ erstellen wir eine lokale Kopie der Dateien.

Docker Image Config anpassen

Nachdem wir das Repository geclont haben, müssen wir noch eine Anpassung an der „docker-compose.yml“ Datei vornehmen. Im Wesentlichen geht es darum, die Environment Variable „KAFKA_ADVERTISED_HOST_NAME“ anzupassen. Hier müsst ihr die IP von eurer Docker Maschine angeben. Dieser kann bei jedem unterschiedlich sein. Um die IP-Adresse zu ermitteln müssen wir „ipconfig“ in der Linux Console eingeben. Als Ergebnis erhalten wir dann eine Liste aller Netzwerk-Interfaces. In der Liste erscheint dann wie im Bild unten aufgezeigt ein Eintrag mit dem Namen „docker0“. Aus diesen Eintrag kopieren wir den Wert von „inet Adresse“. In meinem Fall ist es die 172.17.0.1. Achtet Bitte darauf, dass ihr den richtigen Wert kopiert. Ansonsten werdet ihr Probleme haben Apache Kafka zu starten.

Die ermittelte IP-Adresse tragen wir in die „docker-compose.yml“ Datei ein in dem von uns geclonten Repository. Nachdem wir die Datei angepasst haben, sollte diese wie unten aufgelistet aussehen.

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    build: .
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 172.17.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Apache Kafka Docker Image starten & stoppen mit docker-compose

Jetzt sind wir in der Lage unseren eigenen Docker Image basierend auf dem Image von Wurstmeister zu erstellen. Das Erstellen des Images können wir mit dem Befehl „docker-compose up -d“ oder „docker-compose up“ starten. Nachdem das Image von Wurstmeister geladen wurde, wird unsere Apacke Kafka Docker Instanz gestartet.  Folgende Consolenausgabe solltet ihr erhalten wenn das Image erfolgreich gestartet wurde.

kafka_1      | [2018-09-04 13:01:15,008] INFO [SocketServer brokerId=1001] Started processors for 1 acceptors (kafka.network.SocketServer)
kafka_1      | [2018-09-04 13:01:15,014] INFO Kafka version : 2.0.0 (org.apache.kafka.common.utils.AppInfoParser)
kafka_1      | [2018-09-04 13:01:15,014] INFO Kafka commitId : 3402a8361b734732 (org.apache.kafka.common.utils.AppInfoParser)
kafka_1      | [2018-09-04 13:01:15,017] INFO [KafkaServer id=1001] started (kafka.server.KafkaServer)

Stoppen könnt ihr nun eure Docker Instanz entweder mit „docker-compose stop“ oder „CTRL+c“.

In der Consolenausgabe werdet ihr auch Einträge zu „zookeeper“ finden. Zookeeper wird für den Betrieb von Apache Kafka benötigt.

Das Ergebnis

Wir haben in diesem Tutorial erfahren, wie wir für unsere lokale Entwicklungsumgebung einen Apache Kafka Container mit docker-compose aufsetzten können. Diesen Container könnt ihr je nach Bedarf mit docker-compose starten und stoppen.

An dieser Stelle möchte ich mich auch beim Initiator vom Wurstmeister Image bedanken für das tolle Image. Ich hatte im Vorfeld andere Images ausprobiert, die aber nicht funktioniert haben oder auf einen sehr alten Apache Kafka basierten.

Solltet Ihr Fragen, Kritik oder Anregungen haben, dann würde ich mich freuen wenn Ihr diese in den Kommentaren eintragen könntet.

Schaut euch auch meine anderen Tutorials an.

[amazon_link asins=’3836243660,386490384X,3960090471,3446455108′ template=’ProductCarousel‘ store=’fitnes06-21′ marketplace=’DE‘ link_id=’2f1fa666-b85e-11e8-9696-55f88880d74e‘]

Verwandte Beiträge

Leave a comment