add: HAR traces
This commit is contained in:
@@ -0,0 +1 @@
|
||||
{"queryDurationMs":53,"svcOperation":{"svcOperationId":217,"operation":"create_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create_topic/job/","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу<br/><br/>## 1. Общая информация<br/><br/>---<br/><br/>Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.<br/>Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_topic** — Создание топика<br/>- **modify_topic** — Модификация топика<br/>- **delete_topic** — Удаление топика<br/><br/>---<br/><br/>## 2. Параметры создания топика<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового топика:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Должно быть уникальным в пределах кластера.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Количество партиций топика.<br/> Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.<br/> Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества<br/> Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.<br/><br/>* **Реплики**<br/> Количество реплик для каждой партиции.<br/> Обычно равно количеству доступных брокеров или меньше.<br/> Пример: `3`.<br/><br/><br/>---<br/><br/>## 4. Параметры модификации топика<br/><br/>Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Новое количество партиций.<br/> Пример: `12`.<br/><br/>* **Реплики**<br/> Новое количество реплик.<br/> Пример: `2`.<br/><br/>---<br/><br/>## 5. Рекомендации<br/><br/>* Планируйте количество партиций с запасом — уменьшение их числа невозможно.<br/>* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.<br/>* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.<br/><br/>---","cfsParams":[{"svcOperationCfsParamId":687,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":689,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество реплик не может привышать количество реплик брокера","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":688,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций можно увеличить, но уменьшить их нельзя.","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53}
|
||||
@@ -0,0 +1 @@
|
||||
{"queryDurationMs":119,"svcOperation":{"svcOperationId":218,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/suspend/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":120}
|
||||
@@ -0,0 +1 @@
|
||||
{"queryDurationMs":129,"svcOperation":{"svcOperationId":219,"operation":"modify_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify_topic/job/","descr":null,"man":"# Инструкция по управлению топиками Apache Kafka через платформу<br/><br/>## 1. Общая информация<br/><br/>---<br/><br/>Топик — это основная сущность в Apache Kafka, предназначенная для приёма сообщений от продюсеров и передачи их консюмерам.<br/>Платформа позволяет создавать, удалять и изменять параметры топиков без прямого доступа к брокерам, обеспечивая удобное управление через интерфейс или API.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_topic** — Создание топика<br/>- **modify_topic** — Модификация топика<br/>- **delete_topic** — Удаление топика<br/><br/>---<br/><br/>## 2. Параметры создания топика<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового топика:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Должно быть уникальным в пределах кластера.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Количество партиций топика.<br/> Рекомендуется выбирать с учётом уровня параллелизма потребителей и предполагаемой нагрузки.<br/> Пример: `6`. Здесь важно рассказать о том как происходит расчет оптимального количества<br/> Обратите внимание: уменьшить количество партиций после создания невозможно, поэтому лучше закладывать небольшой запас на будущий рост нагрузки.<br/><br/>* **Реплики**<br/> Количество реплик для каждой партиции.<br/> Обычно равно количеству доступных брокеров или меньше.<br/> Пример: `3`.<br/><br/><br/>---<br/><br/>## 4. Параметры модификации топика<br/><br/>Для уже существующих топиков можно изменять параметры. Все параметры являются опциональными:<br/><br/>* **Имя топика**<br/> Название топика.<br/> Пример: `orders-events`.<br/><br/>* **Партиции**<br/> Новое количество партиций.<br/> Пример: `12`.<br/><br/>* **Реплики**<br/> Новое количество реплик.<br/> Пример: `2`.<br/><br/>---<br/><br/>## 5. Рекомендации<br/><br/>* Планируйте количество партиций с запасом — уменьшение их числа невозможно.<br/>* Количество реплик должно соответствовать требуемому уровню отказоустойчивости, но не превышать количество брокеров.<br/>* Изменение параметров топика в рабочем окружении может временно влиять на производительность. Рекомендуется проводить крупные изменения в периоды минимальной нагрузки.<br/><br/>---","cfsParams":[{"svcOperationCfsParamId":703,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":705,"svcOperationCfsParam":"replicas","label":"Количество реплик для топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Количество партиций ≤ (число брокеров). Пример `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":704,"svcOperationCfsParam":"partitions","label":"Количество партиций топика","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Число партиций на кластер ≤ 100 × (число брокеров) × (фактор репликации). Пример `50`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":129}
|
||||
@@ -0,0 +1 @@
|
||||
{"queryDurationMs":57,"svcOperation":{"svcOperationId":220,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/resume/job/","descr":null,"man":null,"cfsParams":[]},"runDurationMs":57}
|
||||
@@ -0,0 +1 @@
|
||||
{"queryDurationMs":97,"svcOperation":{"svcOperationId":221,"operation":"delete_topic","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete_topic/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":695,"svcOperationCfsParam":"nameTopic","label":"Название топика","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Необходимо выбрать топик, который необходимо удалить","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":97}
|
||||
@@ -0,0 +1 @@
|
||||
{"queryDurationMs":64,"svcOperation":{"svcOperationId":222,"operation":"create_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo "<содержание поля>" | base64 -d > <название>.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: ["sleep", "5600"]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat > /work/user-read.properties <<'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>```bash<br/>cat > /work/user-write.properties <<'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \\<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \\<br/> --command-config /work/user-read.properties \\<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \\<br/> --bootstrap-server <адрес сервис брокера>:9093 \\<br/> --topic <topic> \\<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \\<br/> --bootstrap-server <адрес сервис брокера>:9093 \\<br/> --topic <topic> \\<br/> --from-beginning \\<br/> --group <group> \\<br/> --consumer.config /work/user-read.properties \\<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b <externalConnect.bootstrap.fqdn>:9093 \\<br/> -L \\<br/> -X security.protocol=SSL \\<br/> -X ssl.ca.location=./ca.crt \\<br/> -X ssl.certificate.location=./user-read.crt \\<br/> -X ssl.key.location=./user-read.key \\<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo "hello from kcat" | kcat -P \\<br/> -b <externalConnect.bootstrap.fqdn>:9093 \\<br/> -t write-test \\<br/> -X security.protocol=SSL \\<br/> -X ssl.ca.location=./ca.crt \\<br/> -X ssl.certificate.location=./user-write.crt \\<br/> -X ssl.key.location=./user-write.key \\<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \\<br/> -b <externalConnect.bootstrap.fqdn>:9093 \\<br/> -t write-test \\<br/> -o beginning \\<br/> -q \\<br/> -X security.protocol=SSL \\<br/> -X ssl.ca.location=./ca.crt \\<br/> -X ssl.certificate.location=./user-read.crt \\<br/> -X ssl.key.location=./user-read.key \\<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>---","cfsParams":[{"svcOperationCfsParamId":690,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":691,"svcOperationCfsParam":"nameTopic","label":"Название топика, к которому будут назначены права для создоваемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":692,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":693,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":694,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":65}
|
||||
@@ -0,0 +1 @@
|
||||
{"queryDurationMs":49,"svcOperation":{"svcOperationId":223,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/create/master/buildWithParameters","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":684,"svcOperationCfsParam":"resourceRealm","label":"Платформа для развертывания","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":"getAvailableResourceRealms","regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Выбрать платформу из списка","man":null,"sort":5,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":680,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2`","man":null,"sort":20,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":681,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2048`","man":null,"sort":30,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":682,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2000`","man":null,"sort":40,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":683,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":50,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":685,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":true,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":60,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false},{"svcOperationCfsParamId":686,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":70,"dependsOnCfsParams":null,"isModifiable":true,"isSensitive":false}]},"runDurationMs":49}
|
||||
@@ -0,0 +1 @@
|
||||
{"queryDurationMs":56,"svcOperation":{"svcOperationId":224,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify/job/","descr":null,"man":null,"cfsParams":[{"svcOperationCfsParamId":697,"svcOperationCfsParam":"resourceMemory","label":"Квота(megabyte) памяти пода","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2048`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":698,"svcOperationCfsParam":"resourceInstances","label":"Количество узлов в сети","dataType":"integer > 0","valueList":["1","2","3","4","5"],"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":699,"svcOperationCfsParam":"resourceCPU","label":"Квота(millicore ) ядра пода","dataType":null,"valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `2000`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":700,"svcOperationCfsParam":"resourceDisk","label":"Размер(gigabyte) диска для базы данных","dataType":"integer > 0","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `20`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":701,"svcOperationCfsParam":"needExternalAddressMaster","label":"Выделяет внешний IP для доступа к master.","dataType":"boolean","valueList":["false","true"],"refSvcId":null,"isRequired":false,"defaultValue":"false","defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Флаг, определяющий, нужно ли выделять внешний IP для доступа к master-брокеру. Пример: `true` или `false`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":702,"svcOperationCfsParam":"ipSpaceNameMaster","label":"Имя ipSpace для публикации внешнего IP","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Если включен предыдущий параметр, то поле необходимо заполнить. Пример: `internet-no-antiddos-v1`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":56}
|
||||
@@ -0,0 +1 @@
|
||||
{"queryDurationMs":53,"svcOperation":{"svcOperationId":225,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete/master/buildWithParameters","descr":null,"man":null,"cfsParams":[]},"runDurationMs":53}
|
||||
@@ -0,0 +1 @@
|
||||
{"queryDurationMs":52,"svcOperation":{"svcOperationId":226,"operation":"modify_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/modify_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo "<содержание поля>" | base64 -d > <название>.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: ["sleep", "5600"]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat > /work/user-read.properties <<'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>```bash<br/>cat > /work/user-write.properties <<'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \\<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \\<br/> --command-config /work/user-read.properties \\<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \\<br/> --bootstrap-server <адрес сервис брокера>:9093 \\<br/> --topic <topic> \\<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \\<br/> --bootstrap-server <адрес сервис брокера>:9093 \\<br/> --topic <topic> \\<br/> --from-beginning \\<br/> --group <group> \\<br/> --consumer.config /work/user-read.properties \\<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b <externalConnect.bootstrap.fqdn>:9093 \\<br/> -L \\<br/> -X security.protocol=SSL \\<br/> -X ssl.ca.location=./ca.crt \\<br/> -X ssl.certificate.location=./user-read.crt \\<br/> -X ssl.key.location=./user-read.key \\<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo "hello from kcat" | kcat -P \\<br/> -b <externalConnect.bootstrap.fqdn>:9093 \\<br/> -t write-test \\<br/> -X security.protocol=SSL \\<br/> -X ssl.ca.location=./ca.crt \\<br/> -X ssl.certificate.location=./user-write.crt \\<br/> -X ssl.key.location=./user-write.key \\<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \\<br/> -b <externalConnect.bootstrap.fqdn>:9093 \\<br/> -t write-test \\<br/> -o beginning \\<br/> -q \\<br/> -X security.protocol=SSL \\<br/> -X ssl.ca.location=./ca.crt \\<br/> -X ssl.certificate.location=./user-read.crt \\<br/> -X ssl.key.location=./user-read.key \\<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>---","cfsParams":[{"svcOperationCfsParamId":710,"svcOperationCfsParam":"username","label":"Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":10,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":706,"svcOperationCfsParam":"nameTopic","label":"Название топика (topic), к которому будут назначены права для указанного пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `orders-events`. Использовать маску нельзя(`orders*`), только полное название или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":707,"svcOperationCfsParam":"operations","label":"Список операций, которые разрешены пользователю на топике","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `Create, Describe, Read, Write`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":708,"svcOperationCfsParam":"group","label":"Группа, которым разрешён доступ","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `order-consumers` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false},{"svcOperationCfsParamId":709,"svcOperationCfsParam":"accessHosts","label":"Список хостов, с которых разрешено подключение к Kafka","dataType":"string","valueList":null,"refSvcId":null,"isRequired":false,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `192.168.1.0/24` или `*`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":53}
|
||||
@@ -0,0 +1 @@
|
||||
{"queryDurationMs":56,"svcOperation":{"svcOperationId":227,"operation":"delete_user","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Kafka/job/delete_user/job/","descr":null,"man":"# Инструкция по управлению пользователями Apache Kafka.<br/><br/>---<br/><br/>## 1. Общая информация<br/><br/>Пользователи в Apache Kafka используются для аутентификации и авторизации при подключении к кластеру.<br/>Платформа позволяет создавать, удалять и изменять пользователей без прямого доступа к брокерам, а также настраивать права доступа к топикам и группам.<br/>Это обеспечивает централизованное и безопасное управление доступом к ресурсам Kafka.<br/><br/>---<br/><br/>## Доступные операции<br/><br/>- **create_user** — Создание пользователя<br/>- **modify_user** — Модификация пользователя<br/>- **delete_user** — Удаление пользователя<br/><br/>---<br/><br/>## 2. Параметры создания пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при создании нового пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 3. Параметры модификации пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при модификации пользователя:<br/><br/>* **Имя пользователя**<br/> Имя создаваемого пользователя. Используется для подключения к Kafka и настройки прав.<br/> Пример: `username-admin`<br/><br/>* **Топик**<br/> Название топика, к которому будут назначены права для данного пользователя.<br/> Пример: `orders-events`.<br/> Использовать маску нельзя (`orders*`), только полное название или `*`.<br/><br/>* **Операции**<br/> Список разрешённых операций на указанном топике.<br/> Пример: `Describe, Read, Write`<br/><br/>* **Группа**<br/> Имя группы, которой разрешён доступ. Используется при настройке консюмер-групп.<br/> Пример: `order-consumers`.<br/><br/>* **Разрешённые хосты**<br/> Список хостов или подсетей, с которых разрешено подключение пользователя.<br/> Пример: `192.168.1.0/24` или `*`.<br/><br/>---<br/><br/>## 4. Параметры удалении пользователя<br/><br/>Ниже перечислены параметры, которые необходимо указать при удалении пользователя:<br/><br/>* **Имя пользователя**<br/> Имя удаляемого пользователя.<br/> Пример: `username-admin`<br/><br/>## 5. Выходные параметры<br/><br/>После успешного создания пользователя платформа возвращает параметры, необходимые для подключения:<br/><br/>* **ca.crt**<br/> Корневой сертификат (Certificate Authority), используемый для проверки подлинности сервера при TLS-подключении.<br/> Файл содержит публичный ключ удостоверяющего центра, которому доверяют брокеры и клиенты. Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.crt<br/> ```<br/><br/>* **ca.p12**<br/> PKCS#12-хранилище с корневым сертификатом (Certificate Authority), используемое для проверки подлинности сервера при TLS-подключении.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.p12<br/> ```<br/><br/>* **ca.password**<br/> Пароль для доступа к хранилищу `ca.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>* **user.crt**<br/> Клиентский сертификат, подтверждающий личность пользователя при подключении к Kafka.<br/> Используется совместно с приватным ключом `user.key` для аутентификации.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.crt<br/> ```<br/><br/>* **user.key**<br/> Приватный ключ пользователя, применяемый для установления защищённого TLS-соединения и подтверждения подлинности.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo '<содержание поля>' | base64 -d > <название>.key<br/> ```<br/><br/>* **user.p12**<br/> PKCS#12-хранилище с клиентским сертификатом и приватным ключом, предназначенное для аутентификации пользователя в Kafka.<br/> Выдаеться в формате base64 для получения файла сертификата использовать команду<br/> ```bash<br/> echo "<содержание поля>" | base64 -d > <название>.p12<br/> ```<br/><br/>* **user.password**<br/> Пароль для доступа к хранилищу `user.p12`. Выдаеться в чистом виде. Раскодировать не нужно.<br/><br/>Эти параметры используются для настройки TLS-подключения.<br/><br/>---<br/><br/>## 6. Пример конфигурации клиента внутри кластера<br/><br/>Пример пода:<br/><br/>```yaml<br/>apiVersion: v1<br/>kind: Pod<br/>metadata:<br/> name: kafka-4<br/>spec:<br/> volumes:<br/> - name: work<br/> emptyDir: {}<br/> containers:<br/> - name: kcat<br/> image: quay.io/strimzi/kafka:latest-kafka-4.0.0<br/> command: ["sleep", "5600"]<br/> volumeMounts:<br/> - name: work<br/> mountPath: /work<br/> restartPolicy: Never<br/>```<br/><br/>Создаём под и сохраняем сертификаты:<br/><br/>```bash<br/>kubectl cp user.p12 kafka-4:/work/<br/>kubectl cp ca.p12 kafka-4:/work/<br/>```<br/><br/>Создаём файлы конфигурации:<br/><br/>```bash<br/>cat > /work/user-read.properties <<'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>```bash<br/>cat > /work/user-write.properties <<'EOF'<br/>security.protocol=SSL<br/>ssl.keystore.type=PKCS12<br/>ssl.keystore.location=/work/user-write.p12<br/>ssl.keystore.password=<user.password><br/>ssl.truststore.type=PKCS12<br/>ssl.truststore.location=/work/ca.p12<br/>ssl.truststore.password=<ca.password><br/>EOF<br/>```<br/><br/>Листинг доступных топиков:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-topics.sh \\<br/> --bootstrap-server kafkak8s-bootstrap-external:9093 \\<br/> --command-config /work/user-read.properties \\<br/> --list<br/>```<br/><br/>Запись сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-producer.sh \\<br/> --bootstrap-server <адрес сервис брокера>:9093 \\<br/> --topic <topic> \\<br/> --producer.config /work/user-write.properties<br/>```<br/><br/>Чтение сообщений:<br/><br/>```bash<br/>/opt/kafka/bin/kafka-console-consumer.sh \\<br/> --bootstrap-server <адрес сервис брокера>:9093 \\<br/> --topic <topic> \\<br/> --from-beginning \\<br/> --group <group> \\<br/> --consumer.config /work/user-read.properties \\<br/> --max-messages 50<br/>```<br/><br/>---<br/><br/>## 7. Пример внешнего подключения с использованием **kcat**<br/><br/>**Листинг топиков**<br/><br/>```bash<br/>kcat -b <externalConnect.bootstrap.fqdn>:9093 \\<br/> -L \\<br/> -X security.protocol=SSL \\<br/> -X ssl.ca.location=./ca.crt \\<br/> -X ssl.certificate.location=./user-read.crt \\<br/> -X ssl.key.location=./user-read.key \\<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Запись сообщения**<br/><br/>```bash<br/> echo "hello from kcat" | kcat -P \\<br/> -b <externalConnect.bootstrap.fqdn>:9093 \\<br/> -t write-test \\<br/> -X security.protocol=SSL \\<br/> -X ssl.ca.location=./ca.crt \\<br/> -X ssl.certificate.location=./user-write.crt \\<br/> -X ssl.key.location=./user-write.key \\<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>**Чтение сообщений**<br/><br/>```bash<br/>kcat -C \\<br/> -b <externalConnect.bootstrap.fqdn>:9093 \\<br/> -t write-test \\<br/> -o beginning \\<br/> -q \\<br/> -X security.protocol=SSL \\<br/> -X ssl.ca.location=./ca.crt \\<br/> -X ssl.certificate.location=./user-read.crt \\<br/> -X ssl.key.location=./user-read.key \\<br/> -X ssl.endpoint.identification.algorithm=none<br/>```<br/><br/>---<br/><br/><br/>## 9. Рекомендации<br/><br/>* Минимизируйте набор разрешённых операций для повышения безопасности.<br/>* Используйте отдельные учётные записи для продюсеров, консюмеров и системных сервисов.<br/>* Ограничивайте доступ по IP или подсетям с помощью параметра **Разрешённые хосты**.<br/>* После изменения прав или групп пользователя рекомендуется проверить подключение и доступ к топикам.<br/><br/>---","cfsParams":[{"svcOperationCfsParamId":696,"svcOperationCfsParam":"username","label":"Имя удаляемого пользователя","dataType":"string","valueList":null,"refSvcId":null,"isRequired":true,"defaultValue":null,"defaultCompute":null,"func":null,"regex":null,"uniqueScope":null,"maxlength":null,"minlength":null,"maxvalue":null,"minvalue":null,"descr":"Пример: `username-admin`","man":null,"sort":null,"dependsOnCfsParams":null,"isModifiable":null,"isSensitive":false}]},"runDurationMs":57}
|
||||
Reference in New Issue
Block a user