Bitnami/Kafka Nedir?
Basitçe ifade etmek gerekirse, Bitnami/Kafka, popüler açık kaynaklı mesajlaşma sistemi olan Apache Kafka'nın, Bitnami tarafından paket haline getirilmiş ve dağıtıma hazır bir versiyonudur.
Bitnami/Kafka Helm Chart'ını kullanmanın avantajları:
- Kolay Kurulum: Karmaşık Kafka kurulumunu tek bir Helm komutuna indirger.
- Yapılandırılabilirlik:
values.yamldosyası ile Kafka'nın birçok ayarını (örneğin JMX portunu açmak, persistency ayarları, kaynak limitleri vb.) kolayca değiştirebilirsin. - Standartlaşma: Güvenilir ve test edilmiş bir kurulum yöntemi sunar.
- Güncel ve Güvenli: Bitnami, chart'ları ve içindeki uygulamaları düzenli olarak günceller ve güvenlik taramalarından geçirir.
Bitnami/KAFKA helm charts: https://artifacthub.io/packages/helm/bitnami/kafka
Bitnami/KAFKA kurulumu
- Bitnami helm reposunun eklenmesi
- Örnek kafka-values.yaml
# Bitnami HELM reposunun eklenmesi
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
# Bitnami/Kafka default values export edilmesi
helm show values bitnami/kafka > kafka-values.yaml
global:
defaultStorageClass: "longhorn"
extraConfig: |
auto.leader.rebalance.enable=true
default.replication.factor=3
image:
debug: true
broker:
replicaCount: 6
persistence:
enabled: true
size: 2Gi
resources:
limits: {}
requests: {}
listeners:
client:
protocol: PLAINTEXT
controller:
protocol: PLAINTEXT
interbroker:
protocol: PLAINTEXT
external:
protocol: PLAINTEXT
service:
type: ClusterIP
ports:
client: 9092
controller: 19093
interbroker: 19094
external: 19092
zookeeper:
enabled: true
replicaCount: 6
persistence:
enabled: true
size: 1Gi
controller:
replicaCount: 0
kraft:
enabled: false
metrics:
jmx:
enabled: true
resources:
limits: {}
requests: {}
serviceMonitor:
enabled: true
namespace: kafka
labels:
release: kube-prometheus-stack
Kafka-UI Nedir?
Kafka-UI, Apache Kafka cluster'larını yönetmek ve gözlemlemek için kullanılan açık kaynaklı, web tabanlı bir grafik arayüzüdür (GUI). Komut satırı araçlarına (CLI) görsel bir alternatif sunarak Kafka ile etkileşimi kolaylaştırır. Genellikle bir Docker container veya Kubernetes pod'u olarak çalıştırılır ve web tarayıcınız üzerinden erişilir.
Videonda da bahsettiğin gibi, Provectus tarafından geliştirilen popüler bir Kafka UI aracıdır ve Helm chart'ı ile kolayca deploy edilebilir.
Kafka-ui helm charts: https://provectus.github.io/kafka-ui-charts/
KAFKA-UI kurulumu
- Kafka-ui helm reposunun eklenmesi
- Örnek kafkaui-values.yaml
# Kafka-ui helm reposunun eklenmesi
helm repo add kafka-ui https://provectus.github.io/kafka-ui-charts
helm repo update
# kafka-ui deploy edilmesi
helm install kafka-ui kafka-ui/kafka-ui -n kafka -f kafkaui-values.yaml --create-namespace
yamlApplicationConfig:
kafka:
clusters:
- name: my-kafka-cluster
bootstrapServers: kafka1-broker-0.kafka1-broker-headless.kafka.svc.cluster.local:9092
auth:
type: disabled
management:
health:
ldap:
enabled: false
ingress:
enabled: true
annotations:
cert-manager.io/cluster-issuer: selfsigned-cluster-issuer
ingressClassName: "nginx"
host: "kafka-ui.sercangezer.home"
tls:
enabled: true
secretName: "kafkaui-tls"
Örnek uygulama
apiVersion: apps/v1
kind: Deployment
metadata:
name: consumer
spec:
replicas: 1
selector:
matchLabels:
app: consumer
template:
metadata:
labels:
app: consumer
spec:
containers:
- name: consumer
image: sercangezer/poc-kafka-consumer:v1
ports:
- containerPort: 8080
env:
- name: SPRING_PROFILES_ACTIVE
value: "dev"
imagePullPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: consumer
spec:
selector:
app: consumer
ports:
- protocol: TCP
port: 8080
targetPort: 8080
type: ClusterIP
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: producer
spec:
replicas: 1
selector:
matchLabels:
app: producer
template:
metadata:
labels:
app: producer
spec:
containers:
- name: producer
image: sercangezer/poc-kafka-producer:v1
ports:
- containerPort: 8082
env:
- name: SPRING_PROFILES_ACTIVE
value: "dev"
imagePullPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: producer
spec:
selector:
app: producer
ports:
- protocol: TCP
port: 8082
targetPort: 8082
type: ClusterIP
Kubernetes KAFKA Grafana Dashboard
Kubernetes Kafka Grafana Dashboard: https://grafana.com/grafana/dashboards/12483-kubernetes-kafka/
Yorumlar