#Создание экземпляра
Вы можете создать экземпляр Kafka для построения высокопроизводительного, с низкой задержкой конвейера обработки данных в реальном времени, который поддерживает разнообразные потребности бизнес-систем в таких сценариях, как обработка потоковых данных и разъединение сервисов.
#Создание экземпляра Kafka
#Процедура
Создайте экземпляр Kafka через CLI:
cat << EOF | kubectl -n default create -f -
apiVersion: middleware.alauda.io/v1
kind: RdsKafka
metadata:
name: my-cluster
spec:
entityOperator:
topicOperator:
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
userOperator:
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
tlsSidecar:
resources:
limits:
cpu: 200m
memory: 128Mi
requests:
cpu: 200m
memory: 128Mi
version: 4.1
replicas: 3
config:
auto.create.topics.enable: "false"
auto.leader.rebalance.enable: "true"
background.threads: "10"
compression.type: producer
default.replication.factor: "3"
delete.topic.enable: "true"
log.retention.hours: "168"
log.roll.hours: "168"
log.segment.bytes: "1073741824"
message.max.bytes: "1048588"
min.insync.replicas: "1"
num.io.threads: "8"
num.network.threads: "3"
num.recovery.threads.per.data.dir: "1"
num.replica.fetchers: "1"
unclean.leader.election.enable: "false"
resources:
limits:
cpu: 2
memory: 4Gi
requests:
cpu: 2
memory: 4Gi
storage:
size: 1Gi
# Замените на доступный класс хранилища
class: sc-topolvm
deleteClaim: false
kafka:
listeners:
plain: {}
external:
type: nodeport
tls: false
mode: KRaft
controller:
replicas: 3
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
roles:
- controller
storage:
size: 1Gi
class: sc-topolvm
deleteClaim: false
EOF-
Нажмите на Kafka в левой навигационной панели.
-
Нажмите на Namespace Name.
-
Нажмите на Create Kafka Instance.
-
Заполните соответствующие настройки согласно следующим инструкциям.
Конфигурация Пункты конфигурации Описание Настройка параметров Шаблон параметров Вы можете выбрать системный или пользовательский шаблон параметров. Для пользовательских шаблонов параметров обратитесь к Parameter Template. Узлы Kafka Количество брокерных узлов Для обеспечения высокой доступности брокера каждый брокер будет запланирован на разных узлах кластера. Класс хранилища Если в выпадающем списке нет доступного класса хранилища, обратитесь к администратору платформы для его добавления. Метод доступа Метод аутентификации Для обеспечения безопасной передачи данных рекомендуется включить зашифрованную аутентификацию. Например: метод прослушивания TLS, метод аутентификации SCRAM - SHA - 512. Указать порт хоста При использовании NodePort для доступа к кластеру и открытии указанного порта хоста вы можете указать номер порта сервиса.
Примечание: При обновлении экземпляра порты не взаимозаменяемы. Если необходимо поменять порты местами, сначала обновите на другой свободный порт, затем укажите нужный.Настройка планирования Метка узла Фильтрация доступных узлов в текущем кластере по меткам. Подам будет назначено размещение на доступных узлах.
Примечание: После создания экземпляра эта настройка больше не может быть изменена.Толерантности Pod Если доступные узлы имеют taint, только Pod, у которых установлены соответствующие толерантности, смогут их терпеть и могут быть запланированы на узлы, соответствующие толерантностям Pod и taint узлов. Правила сопоставления следующие: - Equal: когда key, value, effect толерантности Pod полностью совпадают с значениями taint узла, Pod терпит taint узла.
- Exists: когда key, effect толерантности Pod совпадают со значениями taint узла, Pod терпит taint узла.
Описание: effect определяет, будут ли Pod, не терпящие taint узлов, назначены на узлы с этими taint. Например, эффект NoExecute означает, что только Pod, терпящие taint (включая Pod из этого экземпляра Kafka), могут быть запланированы, а Pod, уже запущенные на этом узле, но не терпящие taint (из других экземпляров), будут выселены. Подробнее о правилах сопоставления см. в официальной документации Kubernetes. -
Нажмите Create.
Когда статус экземпляра изменится на Running, экземпляр успешно создан.
После создания экземпляра вы можете проверить его статус с помощью следующей команды:
$ kubectl get rdskafka -n <namespace> -o=custom-columns=NAME:.metadata.name,VERSION:.spec.version,STATUS:.status.phase,MESSAGE:.status.reason,CreationTimestamp:.metadata.creationTimestamp
NAME VERSION STATUS MESSAGE CreationTimestamp
my-cluster 4.1 Active <none> 2025-03-06T08:46:57Z
test41 4.1 Failed Pod is unschedulable or is not starting 2025-03-06T08:46:36ZЗначения полей таблицы вывода:
| Поле | Описание |
|---|---|
| NAME | Имя экземпляра |
| VERSION | В настоящее время поддерживается только версия: 4.1 |
| STATUS | Текущий статус экземпляра, который может принимать следующие значения:
|
| MESSAGE | Причина текущего статуса экземпляра |
| CreationTimestamp | Временная метка создания экземпляра |
#Создание однузлового экземпляра Kafka
Рекомендуется устанавливать количество брокерных узлов равным 3 при создании экземпляра. Если количество брокерных узлов меньше рекомендуемого значения 3, необходимо изменить некоторые параметры при создании.
#Процедура
Создайте однузловой экземпляр Kafka через CLI:
cat << EOF | kubectl -n default create -f -
apiVersion: middleware.alauda.io/v1
kind: RdsKafka
metadata:
name: my-cluster
spec:
entityOperator:
topicOperator:
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
userOperator:
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
tlsSidecar:
resources:
limits:
cpu: 200m
memory: 128Mi
requests:
cpu: 200m
memory: 128Mi
version: 4.1
replicas: 1
config:
auto.create.topics.enable: "false"
auto.leader.rebalance.enable: "true"
background.threads: "10"
compression.type: producer
delete.topic.enable: "true"
log.retention.hours: "168"
log.roll.hours: "168"
log.segment.bytes: "1073741824"
message.max.bytes: "1048588"
min.insync.replicas: "1"
num.io.threads: "8"
num.network.threads: "3"
num.recovery.threads.per.data.dir: "1"
num.replica.fetchers: "1"
unclean.leader.election.enable: "false"
## Убедитесь, что следующие параметры настроены корректно
default.replication.factor: "1"
offsets.topic.replication.factor: 1
transaction.state.log.replication.factor: 1
transaction.state.log.min.isr: 1
resources:
limits:
cpu: 2
memory: 4Gi
requests:
cpu: 2
memory: 4Gi
storage:
size: 1Gi
# Замените на доступный класс хранилища
class: local-path
deleteClaim: false
kafka:
listeners:
plain: {}
external:
type: nodeport
tls: false
mode: KRaft
controller:
roles:
- controller
# В настоящее время совпадает с Kafka брокером
replicas: 1
resources:
limits:
cpu: 1
memory: 2Gi
requests:
cpu: 1
memory: 2Gi
# Хранилище такое же, как у Kafka брокера
storage:
size: 1Gi
# Замените на доступный класс хранилища
class: local-path
deleteClaim: false
EOF-
Нажмите на Kafka в левой навигационной панели.
-
Нажмите на Namespace Name.
-
Нажмите на Create Kafka Instance.
-
Нажмите Expand Instance Parameters и установите следующие параметры в значение 1:
Параметр Значение настройки Описание default.replication.factor1 Фактор репликации для автоматически создаваемых топиков offsets.topic.replication.factor1 Фактор репликации для топика offsets transaction.state.log.replication.factor1 Фактор репликации для журнала состояния транзакций transaction.state.log.min.isr1 Минимальное количество синхронизированных реплик для журнала состояния транзакций -
Завершите остальные настройки.
-
Перейдите на страницу редактирования YAML и измените значения
spec.replicasиspec.controller.replicasна 1. -
Нажмите Create.
Когда статус экземпляра изменится на Running, экземпляр успешно создан.