# Kafka Cluster Helm Chart Strimzi 오퍼레이터를 사용하는 Kafka 클러스터 배포를 위한 Helm 차트입니다. ## 사전 요구사항 - Kubernetes 1.19+ - Helm 3.0+ - Strimzi Kafka Operator가 클러스터에 설치되어 있어야 합니다 ## 설치 방법 ### 1. Strimzi Operator 설치 (아직 설치하지 않은 경우) ```bash kubectl create namespace kafka kubectl create -f 'https://strimzi.io/install/latest?namespace=kafka' -n kafka ``` ### 2. Helm 차트 설치 ```bash # 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 파일을 사용: ```bash helm install kafka-cluster . -n kafka -f custom-values.yaml ``` ## 설정 주요 설정 값들: ### Kafka 클러스터 설정 ```yaml kafka: name: kafka-cluster version: "4.0.0" metadataVersion: "4.0" timezone: "Asia/Seoul" ``` ### Node Pool 설정 ```yaml controller: replicas: 3 storage: size: 50Gi class: longhorn broker: replicas: 3 storage: size: 50Gi class: longhorn ``` ### OAuth/Keycloak 설정 ```yaml oauth: enabled: true keycloakUrl: "" # 필수: Keycloak URL keycloakRealm: "" # 필수: Keycloak Realm keycloakClientId: "" # 필수: Client ID ``` ### Kafka Connect 설정 ```yaml kafkaConnect: enabled: true image: paasup/kafka-connect:0.2 replicas: 1 ``` ## 업그레이드 ```bash helm upgrade kafka-cluster . -n kafka -f custom-values.yaml ``` ## 삭제 ```bash helm uninstall kafka-cluster -n kafka ``` ## 필수 Secret 생성 배포 전에 다음 Secret들을 생성해야 합니다: ### 1. Kafka OAuth Secret ```bash kubectl create secret generic kafka-cluster-oauth-secret \ --from-literal=client-secret=YOUR_CLIENT_SECRET \ -n kafka ``` ### 2. Kafka Connect OAuth Secret ```bash kubectl create secret generic kafka-connect-oauth-secret \ --from-literal=client-secret=YOUR_CONNECT_CLIENT_SECRET \ -n kafka ``` ### 3. Keycloak TLS Certificate ```bash kubectl create secret generic keycloak-tls \ --from-file=ca.crt=path/to/ca.crt \ -n kafka ``` ### 4. Truststore Secret ```bash kubectl create secret generic truststore \ --from-file=truststore.jks=path/to/truststore.jks \ -n kafka ``` ## 확인 배포 상태 확인: ```bash # Kafka 클러스터 상태 확인 kubectl get kafka -n kafka # Pod 상태 확인 kubectl get pods -n kafka # Kafka Connect 상태 확인 kubectl get kafkaconnect -n kafka ``` ## 문제 해결 로그 확인: ```bash # 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 하에 배포됩니다.