kill

Kafka 설치 - Bitnami Helm Chart

영구우 2025. 5. 14. 09:52

1. 네임스페이스 생성 (선택)
    $ sudo kubectl create namespace kafka

2. Helm 저장소 등록 및 최신화
    $ helm repo add bitnami https://charts.bitnami.com/bitnami
    $ helm repo update

3. 명시적 KRaft Cluster ID 포함해서 설치
    #$ helm uninstall my-kafka -n kafka
    #$ kubectl delete pvc -n kafka --all

    $ export KAFKA_CLUSTER_ID=$(uuidgen)
echo "Using Kafka Cluster ID: $KAFKA_CLUSTER_ID"
    $ helm install my-kafka bitnami/kafka \
  --namespace kafka \
  --set kraft.enabled=true \
  --set controller.replicaCount=3 \
  --set broker.replicaCount=3 \
  --set kraft.clusterId=$KAFKA_CLUSTER_ID

    중요: 이 clusterId는 controller와 broker가 공유해야 하며, 명시해주면 안전하게 포맷
    my-kafka: Helm 릴리스 이름
    --namespace kafka: 지정한 네임스페이스에 설치

4. 설치 확인
    $ sudo kubectl get pods -n kafka
    my-kafka로 시작하는 kafka 들이 모두 Running 상태

5. Kafka Pod 내부로 들어가기
    지금 설치된 Kafka는 KRaft 모드이며, 3개의 my-kafka-controller-0~2 pod, my-kafka-broker-0~2 3개가 떠 있는 상태
    이 중 한 pod에 들어가서 Kafka 명령어를 실행

    $ sudo kubectl exec -it -n kafka my-kafka-controller-0 -- bash
        -it: 터미널 인터랙티브
        -n kafka: kafka 네임스페이스
        my-kafka-controller-0: 컨트롤러 0번 pod


6. 토픽 생성 및 메시지 테스트
    6.1. Kafka 토픽 생성
        Kafka 내부에 "test-topic" 이라는 이름의 메시지 채널생성
        kafka-topics.sh --create \
--topic test-topic \
--bootstrap-server localhost:9092 \
--partitions 1 \
--replication-factor 1
        • --topic test-topic: 토픽 이름
        • --bootstrap-server localhost:9092: Kafka 브로커 주소 (내부 pod에서 접속)
        • --partitions: 파티션 수 (기본은 1)
        • --replication-factor: 복제 수 (지금은 1로 충분)

    6.2. 메시지 전송 - Producer 실행]
        Kafka에 메시지를 입력하는 역할 (Producer)을 실행
        kafka-console-producer.sh \
--broker-list localhost:9092 \
--topic test-topic
        이 명령을 실행하면 입력 대기 상태
        여기서 아무 문자열을 입력(예: hello kafka) → Enter

    6.3. 메시지 수신 - Consumer 실행
        다른 터미널을 하나 더 열고, 아래 명령어로 다른 pod에 접속
        $ kubectl exec -it -n kafka my-kafka-controller-1 -- bash

        그 안에서 Consumer 실행
        kafka-console-consumer.sh \
 --bootstrap-server localhost:9092 \
 --topic test-topic \
 --from-beginning

        이 명령을 실행하면, Producer에서 보낸 메시지를 실시간으로 수신.
        아까 입력한 hello kafka 같은 메시지가 여기 뜨면 성공

=================다시===================

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

helm install my-kafka bitnami/kafka

kubectl get pods -n default
kubectl get svc -n default


'kill' 카테고리의 다른 글

minio, hadoop  (6) 2025.05.15
Kafka (Helm 기반) 제거 스크립트  (2) 2025.05.14
strimzi operator, helm 삭제  (0) 2025.05.14
Strimzi Kafka Operator 기반으로 Kafka를 설치  (30) 2025.05.13
kafka 설치  (66) 2025.05.12