350 lines
12 KiB
YAML
350 lines
12 KiB
YAML
name: kafka
|
|
service_id: 116
|
|
service_display_name: ApacheKafka
|
|
service_short_name: kafka
|
|
service_man: "# Инструкция по развертыванию Apache Kafka через платформу<br/><br/>---<br/>## 1. Общая информация<br/>Брокер сообщений Apache Kafka — это отказоустойчивая распределённая платформа для обмена\
|
|
\ сообщениями и потоковой обработки данных в реальном времени.<br/>Позволяет надёжно передавать события между сервисами и системами, интегрироваться с внешними решениями и использовать как внутренние,\
|
|
\ так и защищённые TLS-подключения. Развёртывание полностью автоматизировано платформой.<br/><br/>## Доступные операции<br/>- **create** — Создание кластера<br/>- **delete** — Удаление кластера<br/>-\
|
|
\ **suspend** — Остановка кластера<br/>- **resume** — Запуск кластера<br/><br/>- **create_topic** — Создание топика<br/>- **modify_topic** — Модификация топика<br/>- **delete_topic** — Удаление\
|
|
\ топика<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/><br/>---<br/>## 2. Параметры\
|
|
\ развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:<br/><br/>* **Платформа для развертывания:**<br/> Платформа для развертывания (среда, в\
|
|
\ которой будет развернут кластер). Пример: `\tk8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/> Количество узлов (брокеров) в кластере Kafka<br/><br/>* **Квота (megabyte) памяти пода:**<br/>\
|
|
\ Квота памяти пода в мегабайтах. Пример: `2048`<br/><br/>* **Квота (millicore ) ядра пода:**<br/> Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `1000`<br/><br/>* **Размер (gigabyte) диска\
|
|
\ для базы данных:**<br/> Размер диска для хранения данных в гигабайтах. Пример: `20`<br/><br/>* **Выделяет внешний IP для доступа к master:**<br/> Флаг, определяющий, нужно ли выделять внешний IP для\
|
|
\ доступа к master-брокеру. Пример: `true` или `false`<br/><br/>* **Имя ipSpace для публикации внешнего IP**<br/> Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`<br/><br/>---<br/>##\
|
|
\ 4. Выходные параметры<br/>После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.<br/>Ключевыми из них являются:<br/><br/>**internalConnect** (выдаётся только при работе кластера\
|
|
\ по внутренним адресам)<br/>Внутренние эндпоинты для подключения из сервисов, развёрнутых внутри того же Kubernetes-кластера.<br/>```yaml<br/>internalConnect:<br/> bootstrap:<br/> fqdn: \"<serviceName>-kafka-tls-bootstrap.<namespace>.svc.<clusterDomain>\"\
|
|
<br/> port: 9093<br/> brokers:<br/> broker-1:<br/> fqdn: \"<serviceName>-<serviceName>-pool-0.<serviceName>-kafka-brokers.<namespace>.svc.<clusterDomain>\"<br/> port: 9093<br/>```<br/><br/>**externalConnect**\
|
|
\ (выдаётся только при выделении внешнего IP)<br/>Внешние эндпоинты, зарегистрированные в DNS.<br/>```yaml<br/>externalConnect:<br/> bootstrap:<br/> fqdn: \"bootstrap.<namespace>.<dnsZone>\"<br/>\
|
|
\ port: 9093<br/> brokers:<br/> broker-1:<br/> fqdn: \"broker-1.<namespace>.<dnsZone>\"<br/> port: 9093<br/>```<br/><br/>Заполняется **только один** из параметров:<br/>- при внешней аллокации\
|
|
\ (`loadbalancer`) — `externalConnect`, `internalConnect` остаётся пустым;<br/>- при внутреннем режиме — `internalConnect`, `externalConnect` остаётся пустым.<br/><br/>Для подключения используются следующие\
|
|
\ порты:<br/><br/>* 9092 — внутренний нешифрованный доступ (plain).<br/>* 9093 — внутренний и внешний доступ по TLS, с обязательной TLS-аутентификацией.<br/><br/>---<br/>## 5. Дополнительная информация<br/>Для\
|
|
\ создания топиков, пользователей и управления ими, а также для интеграции с кластерами Kafka используйте соответствующие сервисы и раздел \"Облачные сервисы\".<br/>---"
|
|
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: k8s-4-ext-nubes-ru
|
|
isRequired: true
|
|
isModifiable: false
|
|
valueList:
|
|
- k8s-4-ext-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": "k8s-4-ext-nubes-ru"}'
|
|
clusterConfiguration: '{"cpu": 2000, "memory": 2048, "replicas": 0, "disk": 1}'
|
|
accessConfiguration: '{"allocationExternal": false, "masterAccessList": "[]"}'
|