docker compose를 통하여 Kafka 환경 설정법에 대해서 정리한다. 추가적으로 Kafka Manager 중 하나인 CMAK 도 함께 구성한다.
첫번째로는 docker-compose 개념과 yml 설정법과 docker-compose 명령어에 대해서 정리한다.
Docker Compose를 통한 Kafka 환경 구성 및 Kafka Manager 구성
docker-compose란?
일반적으로 서비스를 제공하는 하나의 시스템은 여러 개의 어플리케이션이 서로 의존성 있게 구성되어 서비스를 제공한다. 이때 하나의 어플리케이션마다 컨테이너가 존재한다고 한다면 각각의 컨테이너를 컨트롤해야하는데 이 상황에서 도커 컴포즈를 이용하면 여려 개의 컨테이너의 실행을 한 번에 관리할 수 있게 도와주어 편리하게 이용할 수 있다.
즉, 도커 컴포즈란 docker multi-container application 들을 정의하고 실행시키는 Tool이며 docker-compose.yml 파일을 만들어 서비스에 필요한 app의 정보를 정의하고 실행할 수 있다.
docker-compose.yml 정의
- 터미널 vi 를 통해 docker-compose.yml 생성
- 카프카 환경 구성 시 가장 기본이 되는 docker-compose 설정
- 카프카 환경 구성 시 zookeeper 설치 필요하여 같이 구성
- CMAK는 카프카 운영 모니터링 툴 중의 하나이다.
version: "3.2"
networks:
kafka_net:
services:
zookeeper:
image: zookeeper:3.5.8
container_name: zookeeper
ports:
- "2181:2181"
networks:
- kafka_net
kafka:
image: wurstmeister/kafka:2.12-2.0.1
container_name: kafka
environment:
KAFKA_BROKER_ID: 1
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://:9092
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "9092:9092"
depends_on:
- zookeeper
networks:
- kafka_net
kafka_manager:
image: hlebalbau/kafka-manager:stable
ports:
- "9000:9000"
depends_on:
- kafka
- zookeeper
environment:
ZK_HOSTS: "zookeeper:2181"
APPLICATION_SECRET: "random-secret"
networks:
- kafka_net
yml 설정 설명
- ports : host 포트를 docker 포트로 포워딩 해주는 설정
- volumes : host 경로 또는 생성된 volume으로 마운트
- links : container에서 다른 container로 접속하기 위한 설정, 이때 IP가 아닌 hostname으로 접속
- environment : 환경 변수 추가
- networks : 네트워크 설정 (각각의 컨테이너가 속해있는 네트워크에서만 서로 통신이 가능)
- image : 사용할 도커 이미지
- version : 1은 서비스 종료 2 이상 사용 (docker compose 의 버전을 의미함)
docker-compose 명령어
- docker-compose up : 서비스 시작, 컨테이너가 생성된 상태가 아니면 새로 생성 (없다면 다음과 같이 생성하게 됨)
- docker-compose down : 서비스 종료, 이미지를 저장하지 않으면 그동안 작업했던 내용 삭제됨
- docker-compose start : 존재하는 컨테이너 시작
- docker-compose stop : 컨테이너 정지
- docker-compose restart : 컨테이너 재시작
- docker container ls : 컨테이너 실행 여부 확인 (docker ps : 도커 프로세스 확인) , 아래와 같이 zookeeper와 kafka가 실행된 모습을 확인할 수 있다.
만약 docker-compose 실행 시 다음과 같은 에러가 발생한다면 해당 포트의 PID 값을 찾아 종료 후 재실행 해준다. (lsof -i TCP:2181)
다음 시간에는 Docker Desktop을 통해 확인하는 방법과 brew를 통해 설치하는 방법 및 CMAK에 접속하여 설정하는 방법에 대해서 정리한다.
참고 문서
* compose referene: https://docs.docker.com/compose/compose-file/
* docker-compose 설치: https://docs.docker.com/docker-for-mac/install/
'DevOps' 카테고리의 다른 글
VisualVM을 통한 원격 서버 도커 내 JVM 성능 모니터링 (0) | 2023.03.04 |
---|---|
Docker Compose를 통한 Kafka 환경 구성 및 Kafka Manager 구성 (2) (0) | 2022.11.29 |
JMeter 를 이용한 API 성능 테스트 (0) | 2022.11.11 |
Jenkins - Build Periodically 옵션을 이용한 스케줄러 사용 방법 (0) | 2022.05.15 |
Nginx - 윈도우 명령어 정리 (0) | 2021.08.18 |
댓글