پرش به مطلب اصلی

Kafka

Kafka یک پلتفرم متن‌باز برای پردازش و انتقال داده‌های جریان بزرگ است. این ابزار با قابلیت‌هایی در مقیاس‌پذیری و تحمل خطا، به کاربران این امکان را می‌دهد تا داده‌های ورودی خود را به‌شکل پیوسته و در زمان واقعی پردازش کنند. Kafka برای موارد استفاده‌ای مانند تجزیه‌و‌تحلیل داده‌ها، مانیتورینگ سیستم‌ها و ادغام داده‌ها از منابع مختلف، انتخابی کارآمد و مطمین است.

با استفاده از اپراتورها در کانتینر ابری آروان‌کلاد، امکان راه‌اندازی و مدیریت کامل Kafka در اختیارتان قرار دارد. برای این اپراتورها از نسخه‌ی ۰.۴۱.۰ پروژه‌ی Strimzi استفاده شده است.

راه‌اندازی Ephemeral Kafka با یک نود

فایل زیر را با یک نام دل‌خواه مانند kafka-ephemeral-cluster.yaml ذخیره کنید:

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
version: 3.7.0
replicas: 1
listeners:
- name: plain
port: 9092
type: internal
tls: false
- name: tls
port: 9093
type: internal
tls: true
config:
offsets.topic.replication.factor: 1
transaction.state.log.replication.factor: 1
transaction.state.log.min.isr: 1
default.replication.factor: 1
min.insync.replicas: 1
inter.broker.protocol.version: "3.7"
storage:
type: ephemeral
zookeeper:
replicas: 3
storage:
type: ephemeral
entityOperator:
topicOperator: {}
userOperator: {}

سپس برای استقرار دستور زیر را اجرا کنید:

kubectl apply -f .yaml -n [namespace]

به‌جای [namespace] نام پروژه‌ی خود در کانتینر ابری آروان‌کلاد را قرار دهید.

راه‌اندازی کلاستر Ephemeral Kafka

فایل زیر را با یک نام دل‌خواه مانند kafka-ephemeral.yaml ذخیره کنید:

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
version: 3.7.0
replicas: 3
listeners:
- name: plain
port: 9092
type: internal
tls: false
- name: tls
port: 9093
type: internal
tls: true
config:
offsets.topic.replication.factor: 3
transaction.state.log.replication.factor: 3
transaction.state.log.min.isr: 2
default.replication.factor: 3
min.insync.replicas: 2
inter.broker.protocol.version: "3.7"
storage:
type: ephemeral
zookeeper:
replicas: 3
storage:
type: ephemeral
entityOperator:
topicOperator: {}
userOperator: {}

سپس برای استقرار دستور زیر را اجرا کنید:

kubectl apply -f kafka-ephemeral.yaml -n [namespace]

به‌جای [namespace] نام پروژه‌ی خود در کانتینر ابری آروان‌کلاد را قرار دهید.

راه‌اندازی Persistent Kafka با یک نود

فایل زیر را با یک نام دل‌خواه مانند kafka-persistent-single.yaml ذخیره کنید:

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
version: 3.7.0
replicas: 1
listeners:
- name: plain
port: 9092
type: internal
tls: false
- name: tls
port: 9093
type: internal
tls: true
config:
offsets.topic.replication.factor: 1
transaction.state.log.replication.factor: 1
transaction.state.log.min.isr: 1
default.replication.factor: 1
min.insync.replicas: 1
inter.broker.protocol.version: "3.7"
storage:
type: jbod
volumes:
- id: 0
type: persistent-claim
size: 100Gi
deleteClaim: false
zookeeper:
replicas: 1
storage:
type: persistent-claim
size: 100Gi
deleteClaim: false
entityOperator:
topicOperator: {}
userOperator: {}

سپس برای استقرار دستور زیر را اجرا کنید:

kubectl apply -f kafka-persistent-single.yaml -n [namespace]

به‌جای [namespace] نام پروژه‌ی خود در کانتینر ابری آروان‌کلاد را قرار دهید.

راه‌اندازی کلاستر Persistent Kafka

فایل زیر را با یک نام دل‌خواه مانند kafka-persistent.yaml ذخیره کنید:

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
version: 3.7.0
replicas: 3
listeners:
- name: plain
port: 9092
type: internal
tls: false
- name: tls
port: 9093
type: internal
tls: true
config:
offsets.topic.replication.factor: 3
transaction.state.log.replication.factor: 3
transaction.state.log.min.isr: 2
default.replication.factor: 3
min.insync.replicas: 2
inter.broker.protocol.version: "3.7"
storage:
type: jbod
volumes:
- id: 0
type: persistent-claim
size: 10Gi
deleteClaim: false
zookeeper:
replicas: 3
storage:
type: persistent-claim
size: 20Gi
deleteClaim: false
entityOperator:
topicOperator: {}
userOperator: {}

سپس برای استقرار دستور زیر را اجرا کنید:

kubectl apply -f kafka-persistent.yaml -n [namespace]

به‌جای [namespace] نام پروژه‌ی خود در کانتینر ابری آروان‌کلاد را قرار دهید.

برای بررسی جزییات و نمونه‌های بیش‌تر به مستندات اپراتور Kafka مراجعه کنید.