[Infra/#1]: 컨테이너 실행을 위한 Docker 및 자동화 스크립트 추가 #2
111
docker/docker-compose-kafka-cluster.yml
Normal file
111
docker/docker-compose-kafka-cluster.yml
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
services:
|
||||||
|
controller:
|
||||||
|
image: apache/kafka:latest
|
||||||
|
container_name: controller
|
||||||
|
environment:
|
||||||
|
KAFKA_NODE_ID: 0
|
||||||
|
KAFKA_PROCESS_ROLES: controller
|
||||||
|
KAFKA_LISTENERS: CONTROLLER://:9093
|
||||||
|
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
|
||||||
|
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
||||||
|
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
|
||||||
|
|
||||||
|
broker-1:
|
||||||
|
image: apache/kafka:latest
|
||||||
|
container_name: broker-1
|
||||||
|
privileged: true
|
||||||
|
ports:
|
||||||
|
- "29092:9092"
|
||||||
|
- "29093:9093"
|
||||||
|
- "7071:7071"
|
||||||
|
environment:
|
||||||
|
KAFKA_NODE_ID: 1
|
||||||
|
KAFKA_PROCESS_ROLES: broker
|
||||||
|
KAFKA_LISTENERS: PLAINTEXT://:19092,PLAINTEXT_HOST://:9092,SSL://:19093,SSL_HOST://:9093
|
||||||
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker-1:19092,PLAINTEXT_HOST://localhost:29092,SSL://broker-1:19093,SSL_HOST://localhost:29093
|
||||||
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,SSL:SSL,SSL_HOST:SSL
|
||||||
|
KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.broker.truststore.jks
|
||||||
|
KAFKA_SSL_TRUSTSTORE_CREDENTIALS: password
|
||||||
|
KAFKA_SSL_KEYSTORE_FILENAME: kafka.broker.keystore.jks
|
||||||
|
KAFKA_SSL_KEYSTORE_CREDENTIALS: password
|
||||||
|
KAFKA_SSL_KEY_CREDENTIALS: password
|
||||||
|
KAFKA_NUM_PARTITIONS: 3
|
||||||
|
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
|
||||||
|
KAFKA_MIN_INSYNC_REPLICAS: 2
|
||||||
|
KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 5
|
||||||
|
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
|
||||||
|
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
||||||
|
KAFKA_OPTS: -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar=7071:/opt/jmx_exporter/server-metrics.yml
|
||||||
|
depends_on:
|
||||||
|
- controller
|
||||||
|
volumes:
|
||||||
|
- ./jmx/server-metrics.yml:/opt/jmx_exporter/server-metrics.yml
|
||||||
|
- ./jmx/jmx_prometheus_javaagent-0.3.1.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar
|
||||||
|
- ../ssl:/etc/kafka/secrets
|
||||||
|
|
||||||
|
broker-2:
|
||||||
|
image: apache/kafka:latest
|
||||||
|
container_name: broker-2
|
||||||
|
privileged: true
|
||||||
|
ports:
|
||||||
|
- "39092:9092"
|
||||||
|
- "39093:9093"
|
||||||
|
- "7072:7071"
|
||||||
|
environment:
|
||||||
|
KAFKA_NODE_ID: 2
|
||||||
|
KAFKA_PROCESS_ROLES: broker
|
||||||
|
KAFKA_LISTENERS: PLAINTEXT://:19092,PLAINTEXT_HOST://:9092,SSL://:19093,SSL_HOST://:9093
|
||||||
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker-2:19092,PLAINTEXT_HOST://localhost:39092,SSL://broker-2:19093,SSL_HOST://localhost:39093
|
||||||
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,SSL:SSL,SSL_HOST:SSL
|
||||||
|
KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.broker.truststore.jks
|
||||||
|
KAFKA_SSL_TRUSTSTORE_CREDENTIALS: password
|
||||||
|
KAFKA_SSL_KEYSTORE_FILENAME: kafka.broker.keystore.jks
|
||||||
|
KAFKA_SSL_KEYSTORE_CREDENTIALS: password
|
||||||
|
KAFKA_SSL_KEY_CREDENTIALS: password
|
||||||
|
KAFKA_NUM_PARTITIONS: 3
|
||||||
|
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
|
||||||
|
KAFKA_MIN_INSYNC_REPLICAS: 2
|
||||||
|
KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 5
|
||||||
|
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
|
||||||
|
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
||||||
|
KAFKA_OPTS: -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar=7071:/opt/jmx_exporter/server-metrics.yml
|
||||||
|
depends_on:
|
||||||
|
- controller
|
||||||
|
volumes:
|
||||||
|
- ./jmx/server-metrics.yml:/opt/jmx_exporter/server-metrics.yml
|
||||||
|
- ./jmx/jmx_prometheus_javaagent-0.3.1.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar
|
||||||
|
- ../ssl:/etc/kafka/secrets
|
||||||
|
|
||||||
|
broker-3:
|
||||||
|
image: apache/kafka:latest
|
||||||
|
container_name: broker-3
|
||||||
|
privileged: true
|
||||||
|
ports:
|
||||||
|
- "49092:9092"
|
||||||
|
- "49093:9093"
|
||||||
|
- "7073:7071"
|
||||||
|
environment:
|
||||||
|
KAFKA_NODE_ID: 3
|
||||||
|
KAFKA_PROCESS_ROLES: broker
|
||||||
|
KAFKA_LISTENERS: PLAINTEXT://:19092,PLAINTEXT_HOST://:9092,SSL://:19093,SSL_HOST://:9093
|
||||||
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker-3:19092,PLAINTEXT_HOST://localhost:49092,SSL://broker-3:19093,SSL_HOST://localhost:49093
|
||||||
|
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT,SSL:SSL,SSL_HOST:SSL
|
||||||
|
KAFKA_SSL_TRUSTSTORE_FILENAME: kafka.broker.truststore.jks
|
||||||
|
KAFKA_SSL_TRUSTSTORE_CREDENTIALS: password
|
||||||
|
KAFKA_SSL_KEYSTORE_FILENAME: kafka.broker.keystore.jks
|
||||||
|
KAFKA_SSL_KEYSTORE_CREDENTIALS: password
|
||||||
|
KAFKA_SSL_KEY_CREDENTIALS: password
|
||||||
|
KAFKA_NUM_PARTITIONS: 3
|
||||||
|
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
|
||||||
|
KAFKA_MIN_INSYNC_REPLICAS: 2
|
||||||
|
KAFKA_OFFSETS_TOPIC_NUM_PARTITIONS: 5
|
||||||
|
KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
|
||||||
|
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
|
||||||
|
KAFKA_OPTS: -javaagent:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar=7071:/opt/jmx_exporter/server-metrics.yml
|
||||||
|
depends_on:
|
||||||
|
- controller
|
||||||
|
volumes:
|
||||||
|
- ./jmx/server-metrics.yml:/opt/jmx_exporter/server-metrics.yml
|
||||||
|
- ./jmx/jmx_prometheus_javaagent-0.3.1.jar:/opt/jmx_exporter/jmx_prometheus_javaagent-0.3.1.jar
|
||||||
|
- ../ssl:/etc/kafka/secrets
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user