환경세팅 1편으로 포스팅 변경될 예정
도커 컴포즈 설정하는데, 이렇게 시간 걸리기 있는지 모르겠다.
docker hub docu에서는 docker compose up -d --scale kafka=3
으로 스케일링 해주고 있는 것 같은데, 왜 난 container 이름 규칙 때문에 생성되지 않는지 모르겠다. 그래서 각자 설정 해주기로 함...
hostname=192.168.219.105
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
container_name: zookeeper
ports:
- "2181:2181"
kafka-1:
container_name: kafka-1
image: wurstmeister/kafka:2.13-2.7.0
ports:
- "9093:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ADVERTISED_HOST_NAME: "${hostname}"
BOOTSTRAP_SERVERS: "${hostname}:9093, ${hostname}:9094, ${hostname}:9095"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- zookeeper
kafka-2:
container_name: kafka-2
image: wurstmeister/kafka:2.13-2.7.0
ports:
- "9094:9092"
environment:
KAFKA_BROKER_ID: 2
KAFKA_ADVERTISED_HOST_NAME: ${hostname}
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
BOOTSTRAP_SERVERS: ${hostname}:9093, ${hostname}:9094, ${hostname}:9095
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- zookeeper
kafka-3:
container_name: kafka-3
image: wurstmeister/kafka:2.13-2.7.0
ports:
- "9095:9092"
environment:
KAFKA_BROKER_ID: 3
KAFKA_ADVERTISED_HOST_NAME: ${hostname}
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
BOOTSTRAP_SERVERS: ${hostname}:9093, ${hostname}9094, ${hostname}:9095
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- zookeeper
192.168.219.105 이부분은 internal ip이니 적당히 알아서 본인 ip로 변경하면된다.
도커 허브 레포에서는 멀티 브로커 구성시 localhost 로 ip를 설정하지 말라 권하고 있다.
사실 카프카 클러스터 구성이 되지 않아다.
카프카를 멀티 브로커로 구성하려하는데 아래와 같이 노드를 찾을 수 없다는 Error가 발생을 했다.
주말동안 문제를 찾으려고 꽤 시간을 많이 소비했는데 문제점은 다음과 같다.
KAFKA_ADVERTISED_HOST_NAME을 localhost로 잡아주면 발생하는 문제였다.
도커 컴포즈를 구성할때 왜 localhost로 잡으면 클러스터 구성이 되질 않는지에 꽃혀서 한동안 해매었다.
주키퍼에서 카프카 브로커들을 검색하는 과정에서 문제가 생기는 것 같다.
그래서 다른 카프카 클러스터 구성을 도커로 한것을 찾아보면 각자의 주키퍼를 만들고 환경 구성을 하는 것 같던데, 더 찾아보면 러닝커브가 길어질 것 같아서 나중에 찾아보도록 하겠다 그리고 르블랑 법칙
도커 컴포즈, k8s가 지원하는 네트워크 레이어에 대해서 더 자세히 알아봐야 겠다 라는 생각이듬
아니면 k8s에 따로 카프카 클러스터 환경을 구축해보든가..