#Создание экземпляра
Вы можете создать экземпляр 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: local-path
deleteClaim: false
kafka:
listeners:
plain: {}
external:
type: nodeport
tls: false
zookeeper:
# В настоящее время такой же, как у Kafka брокера
replicas: 3
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.
-
Заполните соответствующие настройки согласно следующим инструкциям.
Конфигурация Пункты конфигурации Описание Настройка параметров Шаблон параметров Вы можете выбрать системный или пользовательский шаблон параметров. Для пользовательских шаблонов параметров обратитесь к Parameter Template. Узлы Kafka Количество брокерских узлов Для обеспечения высокой доступности брокера каждый брокер будет запланирован на разных узлах кластера. Класс хранилища Если в выпадающем списке отсутствует класс хранилища, обратитесь к администратору платформы для его добавления. Метод доступа Метод аутентификации Для обеспечения безопасной передачи данных рекомендуется включить зашифрованную аутентификацию. Например: метод прослушивания TLS, метод аутентификации SCRAM - SHA - 512. Указать порт хоста При использовании NodePort для доступа к кластеру и открытии указанного порта хоста вы можете указать номер порта сервиса.
Примечание: при обновлении экземпляра порты не взаимозаменяемы. Если необходимо поменять порты местами, сначала обновите на другой свободный порт, затем укажите нужный.Настройка планирования Метка узла Фильтрует доступные узлы в текущем кластере по меткам. Pods будут запланированы на доступных узлах.
Примечание: после создания экземпляра эта настройка больше не может быть изменена.Толерантности Pod Если доступные узлы имеют taint, только Pods с установленными толерантностями будут терпеть эти taint и могут быть запланированы на узлах, соответствующих толерантностям Pod и taint узлов. Правила соответствия следующие. - Equal: когда key, value, effect толерантности Pod полностью совпадают со значениями taint узла, Pod терпит taint узла.
- Exists: когда key, effect толерантности Pod совпадают со значениями taint узла, Pod терпит taint узла.
Описание: effect определяет, будут ли Pods без толерантностей к taint узлов назначены на узлы с этими taint. Например, эффект NoExecute означает, что только Pods, терпящие taint (включая Pods этого экземпляра Kafka), могут быть запланированы, а Pods, уже запущенные на этом узле и не терпящие 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 | В настоящее время поддерживаются только следующие 4 версии: 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, экземпляр успешно создан.