Repository for dip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.8 KiB

Kafka Cluster Helm Chart

Strimzi 오퍼레이터를 사용하는 Kafka 클러스터 배포를 위한 Helm 차트입니다.

사전 요구사항

  • Kubernetes 1.19+
  • Helm 3.0+
  • Strimzi Kafka Operator가 클러스터에 설치되어 있어야 합니다

설치 방법

1. Strimzi Operator 설치 (아직 설치하지 않은 경우)

kubectl create namespace kafka
kubectl create -f 'https://strimzi.io/install/latest?namespace=kafka' -n kafka

2. Helm 차트 설치

# values.yaml 파일을 수정하여 환경에 맞게 설정
helm install kafka-cluster . -n kafka \
  --set oauth.keycloakUrl="https://your-keycloak-url" \
  --set oauth.keycloakRealm="your-realm" \
  --set oauth.keycloakClientId="your-client-id"

또는 values 파일을 사용:

helm install kafka-cluster . -n kafka -f custom-values.yaml

설정

주요 설정 값들:

Kafka 클러스터 설정

kafka:
  name: kafka-cluster
  version: "4.0.0"
  metadataVersion: "4.0"
  timezone: "Asia/Seoul"

Node Pool 설정

controller:
  replicas: 3
  storage:
    size: 50Gi
    class: longhorn

broker:
  replicas: 3
  storage:
    size: 50Gi
    class: longhorn

OAuth/Keycloak 설정

oauth:
  enabled: true
  keycloakUrl: "" # 필수: Keycloak URL
  keycloakRealm: "" # 필수: Keycloak Realm
  keycloakClientId: "" # 필수: Client ID

Kafka Connect 설정

kafkaConnect:
  enabled: true
  image: paasup/kafka-connect:0.2
  replicas: 1

업그레이드

helm upgrade kafka-cluster . -n kafka -f custom-values.yaml

삭제

helm uninstall kafka-cluster -n kafka

필수 Secret 생성

배포 전에 다음 Secret들을 생성해야 합니다:

1. Kafka OAuth Secret

kubectl create secret generic kafka-cluster-oauth-secret \
  --from-literal=client-secret=YOUR_CLIENT_SECRET \
  -n kafka

2. Kafka Connect OAuth Secret

kubectl create secret generic kafka-connect-oauth-secret \
  --from-literal=client-secret=YOUR_CONNECT_CLIENT_SECRET \
  -n kafka

3. Keycloak TLS Certificate

kubectl create secret generic keycloak-tls \
  --from-file=ca.crt=path/to/ca.crt \
  -n kafka

4. Truststore Secret

kubectl create secret generic truststore \
  --from-file=truststore.jks=path/to/truststore.jks \
  -n kafka

확인

배포 상태 확인:

# Kafka 클러스터 상태 확인
kubectl get kafka -n kafka

# Pod 상태 확인
kubectl get pods -n kafka

# Kafka Connect 상태 확인
kubectl get kafkaconnect -n kafka

문제 해결

로그 확인:

# Kafka broker 로그
kubectl logs -n kafka kafka-cluster-broker-0

# Kafka Connect 로그
kubectl logs -n kafka -l strimzi.io/cluster=kafka-cluster,strimzi.io/kind=KafkaConnect

라이선스

이 차트는 Apache License 2.0 하에 배포됩니다.