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

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 مراجعه کنید.