kafka-cluster
This commit is contained in:
@@ -0,0 +1,162 @@
|
||||
# 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 하에 배포됩니다.
|
||||
Reference in New Issue
Block a user