#Создание экземпляра
Вы можете создать экземпляр 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: 3.8
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 для доступа к кластеру и открытии указанного порта хоста вы можете задать номер порта сервиса.
Примечание: При обновлении экземпляра порты не взаимозаменяемы. Если необходимо поменять порты местами, сначала обновите на другой свободный порт, затем укажите нужный.Конфигурация планирования Метка узла Фильтрует доступные узлы в текущем кластере по меткам. Поды будут запланированы на доступных узлах.
Примечание: После создания экземпляра эта настройка больше не подлежит изменению.Толерантности подов Если доступные узлы имеют taint, только поды с установленными толерантностями смогут их терпеть и могут быть запланированы на узлах, соответствующих толерантностям подов и taint узлов. Правила соответствия следующие: - Equal: когда key, value, effect толерантности пода полностью совпадают с значениями taint узла, под терпит taint.
- Exists: когда key, effect толерантности пода совпадают с taint узла, под терпит taint.
Описание: effect определяет, будут ли поды без толерантностей назначены на узлы с такими taint. Например, эффект NoExecute означает, что только поды, терпящие taint (включая поды этого экземпляра Kafka), могут быть запланированы, а поды, уже запущенные на узле и не терпящие 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 3.8 Active <none> 2025-03-06T08:46:57Z
test38 3.8 Failed Pod is unschedulable or is not starting 2025-03-06T08:46:36ZЗначения полей таблицы вывода:
| Поле | Описание |
|---|---|
| NAME | Имя экземпляра |
| VERSION | В настоящее время поддерживаются только следующие версии: 2.5.0, 2.7.0, 2.8.2, 3.8 |
| 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: 3.8
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
zookeeper:
# В настоящее время такой же, как у брокера 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.zookeeper.replicasна 1. -
Нажмите Create.
Когда статус экземпляра изменится на Running, экземпляр успешно создан.