name: kafka
service_id: 116
service_display_name: ApacheKafka
service_short_name: kafka
service_man: "# Инструкция по развертыванию Apache Kafka через платформу
---
## 1. Общая информация
Брокер сообщений Apache Kafka — это отказоустойчивая распределённая платформа для обмена\
\ сообщениями и потоковой обработки данных в реальном времени.
Позволяет надёжно передавать события между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние,\
\ так и защищённые TLS-подключения. Развёртывание полностью автоматизировано платформой.
## Доступные операции
- **create** — Создание кластера
- **delete** — Удаление кластера
-\
\ **suspend** — Остановка кластера
- **resume** — Запуск кластера
- **create_topic** — Создание топика
- **modify_topic** — Модификация топика
- **delete_topic** — Удаление\
\ топика
- **create_user** — Создание пользователя
- **modify_user** — Модификация пользователя
- **delete_user** — Удаление пользователя
---
## 2. Параметры\
\ развертывания кластера
Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:
* **Платформа для развертывания:**
Платформа для развертывания (среда, в\
\ которой будет развернут кластер). Пример: `\tk8s-3.ext.nubes.ru`.
* **Количество узлов в сети:**
Количество узлов (брокеров) в кластере Kafka
* **Квота (megabyte) памяти пода:**
\
\ Квота памяти пода в мегабайтах. Пример: `2048`
* **Квота (millicore ) ядра пода:**
Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`
* **Размер (gigabyte) диска\
\ для базы данных:**
Размер диска для хранения данных в гигабайтах. Пример: `20`
* **Выделяет внешний IP для доступа к master:**
Флаг, определяющий, нужно ли выделять внешний IP для\
\ доступа к master-брокеру. Пример: `true` или `false`
* **Имя ipSpace для публикации внешнего IP**
Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`
---
##\
\ 4. Выходные параметры
После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.
Ключевыми из них являются:
**internalConnect** (выдаётся только при работе кластера\
\ по внутренним адресам)
Внутренние эндпоинты для подключения из сервисов, развёрнутых внутри того же Kubernetes-кластера.
```yaml
internalConnect:
bootstrap:
fqdn: \"-kafka-tls-bootstrap..svc.\"\
port: 9093
brokers:
broker-1:
fqdn: \"--pool-0.-kafka-brokers..svc.\"
port: 9093
```
**externalConnect**\
\ (выдаётся только при выделении внешнего IP)
Внешние эндпоинты, зарегистрированные в DNS.
```yaml
externalConnect:
bootstrap:
fqdn: \"bootstrap..\"
\
\ port: 9093
brokers:
broker-1:
fqdn: \"broker-1..\"
port: 9093
```
Заполняется **только один** из параметров:
- при внешней аллокации\
\ (`loadbalancer`) — `externalConnect`, `internalConnect` остаётся пустым;
- при внутреннем режиме — `internalConnect`, `externalConnect` остаётся пустым.
Для подключения используются следующие\
\ порты:
* 9092 — внутренний нешифрованный доступ (plain).
* 9093 — внутренний и внешний доступ по TLS, с обязательной TLS-аутентификацией.
---
## 5. Дополнительная информация
Для\
\ создания топиков, пользователей и управления ими, а также для интеграции с кластерами Kafka используйте соответствующие сервисы и раздел \"Облачные сервисы\".
---"
lifecycle:
suspendOnDestroyDefault: true
adoptExistingOnCreateDefault: false
operations:
- svcOperationId: 148
operation: create
kind: instance
action: create
- svcOperationId: 165
operation: create_topic
kind: subresource
action: create
- svcOperationId: 168
operation: create_user
kind: subresource
action: create
- svcOperationId: 149
operation: delete
kind: instance
action: delete
- svcOperationId: 167
operation: delete_topic
kind: subresource
action: delete
- svcOperationId: 170
operation: delete_user
kind: subresource
action: delete
- svcOperationId: 162
operation: modify
kind: instance
action: modify
- svcOperationId: 166
operation: modify_topic
kind: subresource
action: modify
- svcOperationId: 169
operation: modify_user
kind: subresource
action: modify
- svcOperationId: 161
operation: resume
kind: instance
action: resume
- svcOperationId: 160
operation: suspend
kind: instance
action: suspend
stateOut:
topics: {}
users: {}
cfsParams:
- svcOperationCfsParamId: 1084
svcOperationCfsParam: startupConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: false
dataDescriptor:
resourceRealm:
dataType: string
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- devclustername
- k8s-3-sandbox-nubes-ru
- k8s-4-sandbox-nubes-ru
- svcOperationCfsParamId: 1085
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: ''
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1086
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
allocationExternal:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 523
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 524
svcOperationCfsParam: partitions
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 525
svcOperationCfsParam: replicas
dataType: integer > 0
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 530
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 531
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: false
- svcOperationCfsParamId: 532
svcOperationCfsParam: operations
dataType: array
isRequired: true
defaultValue: ''
isModifiable: false
valueList:
- Create
- Describe
- Read
- Write
- svcOperationCfsParamId: 533
svcOperationCfsParam: group
dataType: string
isRequired: true
defaultValue: '*'
isModifiable: false
- svcOperationCfsParamId: 534
svcOperationCfsParam: accessHosts
dataType: string
isRequired: true
defaultValue: '*'
isModifiable: false
- svcOperationCfsParamId: 529
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 540
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 1087
svcOperationCfsParam: clusterConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
cpu:
dataType: integer > 0
defaultValue: '2000'
isRequired: true
isModifiable: false
memory:
dataType: integer > 0
defaultValue: '2048'
isRequired: true
isModifiable: false
replicas:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
valueList:
- '1'
- '3'
- '5'
- '7'
disk:
dataType: integer > 0
defaultValue: '1'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 1088
svcOperationCfsParam: accessConfiguration
dataType: map-fixed
isRequired: true
defaultValue: ''
isModifiable: true
dataDescriptor:
allocationExternal:
dataType: boolean
defaultValue: 'false'
isRequired: true
isModifiable: false
valueList:
- 'false'
- 'true'
masterAccessList:
dataType: json
defaultValue: '[]'
isRequired: true
isModifiable: false
- svcOperationCfsParamId: 526
svcOperationCfsParam: nameTopic
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 527
svcOperationCfsParam: partitions
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 528
svcOperationCfsParam: replicas
dataType: string
isRequired: false
defaultValue: ''
isModifiable: true
- svcOperationCfsParamId: 535
svcOperationCfsParam: nameTopic
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 536
svcOperationCfsParam: operations
dataType: array
isRequired: false
defaultValue: ''
isModifiable: true
valueList:
- Create
- Describe
- Read
- Write
- svcOperationCfsParamId: 537
svcOperationCfsParam: group
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 538
svcOperationCfsParam: accessHosts
dataType: string
isRequired: false
defaultValue: '*'
isModifiable: true
- svcOperationCfsParamId: 539
svcOperationCfsParam: username
dataType: string
isRequired: true
defaultValue: ''
isModifiable: true
cfsParamsByOp:
148:
- 1084
- 1085
- 1086
165:
- 523
- 524
- 525
168:
- 530
- 531
- 532
- 533
- 534
149: []
167:
- 529
170:
- 540
162:
- 1087
- 1088
166:
- 526
- 527
- 528
169:
- 535
- 536
- 537
- 538
- 539
161: []
160: []
stateParams:
startupConfiguration: '{"resourceRealm": ""}'
clusterConfiguration: '{"cpu": 2000, "memory": 2048, "replicas": 0, "disk": 1}'
accessConfiguration: '{"allocationExternal": false, "masterAccessList": "[]"}'