2023. 5. 25. 22:27ㆍkafka
우리가 Kafka를 사용할 때 CLI를 사용해서 Topic을 컨트롤 하거나 아니면 상태를 보거나 하는일을 하게되는데 이게 생각보다 많이 불편함을 느낄 수 있습니다.
회사에서 운영하고 있는 카프카 클러스터를 관리하는데 많이 유용하게 사용되고 있어서 한번 소개 해 봅니다.
우선 우리 회사는 kafka를 k8s위에서 관리하고 있고, 그렇기 때문에 이번에 Kafka UI를 올리는 과정을 소개함에 있어서 Yaml파일을 작성할겁니다.
준비물이 있습니다.
1. 운영중 혹은 개발용인 카프카가 있어야 합니다.
2. K8s가 있어야 합니다.
3. 개발 환경에 kubectl과 같은 k8s CLI Tool이 있어야 합니다.
첫번째 Kafka UI는 어떤걸 사용하는가
이 툴에 대해서 다른 툴과 비교한 내용이 있는데 참고 해보기를 바랍니다.
두번째 yaml파일 작성을 합니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: kafka-ui
namespace: kafka
spec:
selector:
matchLabels:
app: kafka-ui
replicas: 1
template:
metadata:
labels:
app: kafka-ui
spec:
containers:
- name: kafka-ui
image: provectuslabs/kafka-ui:latest
ports:
- containerPort: 8080
env:
- name: KAFKA_CLUSTERS_0_NAME
value: prod-kafka
- name: DYNAMIC_CONFIG_ENABLED
value: "true"
- name: KAFKA_CLUSTERS_0_KAFKACONNECT_0_NAME
value: kcall-connector
- name: KAFKA_CLUSTERS_0_KAFKACONNECT_0_ADDRESS
value: "http://{KAFKA_CONNECTOR_URL}:8083"
- name: KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS
value: {KAFKA_URL-1:9092},{KAFKA_URL-2:9092},{KAFKA_URL-3:9092}
- name: KAFKA_CLUSTERS_0_ZOOKEEPER
value: {ZOOKEEPER_URL-1:2888},{ZOOKEEPER_URL-2:2888},{ZOOKEEPER_URL-3:2888}
resources:
requests:
cpu: "100m"
memory: "256Mi"
limits:
cpu: "500m"
memory: "512Mi"
---
apiVersion: v1
kind: Service
metadata:
name: kafka-ui
namespace: kafka
spec:
selector:
app: kafka-ui
ports:
- protocol: TCP
port: 8080
targetPort: 8080
type: NodePort
env에 적혀있는 Kafka URL은 수정하셔야 합니다. 저대로 사용하시면 안될거에요 100퍼센트
UI for Apache Kafka에서는 기능을 확장할 때 설정한 env에 따라서 기능이 정해집니다. 저같은경우는 Kafka Cluster와 kafka Connecotr를 넣었는데요 이경우 UI에서 Kafka Cluster에 대한 정보와 Connector에 대한 정보를 볼 수 있습니다. 해당 화면은 잠시후 보도록 하겠습니다.
UI진짜 진짜 너무너무 깔끔합니다.
각종기능이 다 있습니다.
1. Broker에 대한 설정 변경도 가능
2. Topic내부 메세지 조회 및 설정 확인
3. kafka에 붙어있는 consumer group 확인이 가능합니다.
4. 좌측 매뉴에서 Kafka Connect매뉴에 들어가면 Connector의 목록 및 정보를 확인 할 수 있습니다.
'kafka' 카테고리의 다른 글
kafka - Debezium kafka Connector K8s에 설치 및 확인 (0) | 2023.05.27 |
---|---|
kafka - Topic Partition 개수 설계 (0) | 2021.07.21 |
Kafka 기본 명령어 (0) | 2021.06.26 |
아파치 카프카 기본개념 (Apache Kafka) (0) | 2021.05.28 |