Руководство по установке#
В руководстве приведены инструкции по установке компонента Сервисный прокси (SVPX).
Термины и определения#
Термин/аббревиатура |
Определение |
|---|---|
CPU |
Central Processing Unit, центральный процессор |
KB |
Килобайт (КБ) — единица измерения количества информации, равная 1024 байтам |
MB |
Мегабайт (МБ) — единица измерения количества информации, равная 1024 KБ |
ГБ |
Гигабайт (ГБ) — единица измерения количества информации, равная 1024 MБ |
TB |
Терабайт (ТБ) — единица измерения количества информации, равная 1024 ГБ |
TPS |
Ticks per Second, число тактов в секунду |
Милликор |
Метрическая единица измерения, используемая для измерения загрузки процессора |
Pod |
Набор контейнеров внутри узла кластера Kubernetes |
Deployment |
Набор инструкций для запуска приложения в Kubernetes |
Платформа |
Платформа оркестрации приложений с средствами автоматизации и управления на основе политик, например Kubernetes |
Сервисная сетка / Service Mesh |
Архитектурный паттерн реализации управляемых, безопасных, контролируемых, прозрачных взаимодействий между микросервисными приложениями, обеспечиваемый набором прокси (Сервисных и Граничных), установленных в namespace потребителя |
Istio SE |
Настраиваемая сервисная сетка с открытым исходным кодом, служащая для взаимодействия, мониторинга и обеспечения безопасности контейнеров в кластере Kubernetes |
Контрольная панель |
Проект, где запущены управляющие приложения (компонент POLM) |
Управление политиками / POLM |
Компонент Управление политиками |
Граничный прокси / IGEG |
Компонент Граничный прокси |
Сервисный прокси / SVPX |
Компонент Сервисный прокси |
Ingress Gateway |
Прокси для контроля внешнего трафика входящего в проект. Позволяет включать для входящего трафика такие функции как маршрутизация, балансировка нагрузки, безопасность и мониторинг |
Egress Gateway |
Прокси для контроля исходящего трафика из проекта. Egress позволяет применять правила мониторинга и правила маршрутизации к выходящему трафику |
Проект / namespace |
Изолированная область (пространство имен) в кластере Kubernetes, предназначенная для разграничения доступа к ресурсам кластера (Deployment, Service, и т.д.) |
Системные требования#
Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней.
Системное программное обеспечение#
Ниже представлены категории системного программного обеспечения (далее — ПО), которые обязательны или опциональны для установки, настройки, контроля и функционирования компонента. В каждой категории перечислены все поддерживаемые продукты сторонних правообладателей. Отдельно обозначены варианты, которые рекомендует АО «СберТех» (маркировка «Рекомендовано» в столбце «Продукт, функциональная совместимость с которым подтверждена»). Клиенту необходимо выбрать один из продуктов в каждой категории, исходя из условий использования конечной ИС.
Категория ПО |
Обязательность установки (да/нет)* |
Наименование ПО |
Версия |
Продукт, функциональная совместимость с которым подтверждена** |
Описание |
|---|---|---|---|---|---|
Операционная система |
Да |
10 |
Рекомендовано. Правообладателем АО «СберТех» также рекомендована ОС – Platform V SberLinux OS Server, см. раздел «Платформенные зависимости» |
ОС контейнеров для запуска модулей компонента |
|
8 |
Опционально |
||||
Cреда контейнеризации |
Да |
1.19 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендована среда контейнеризации – Platform V DropApp, см. раздел «Платформенные зависимости» |
Платформа контейнеризации для запуска компонентов сервиса |
|
4.6 и выше |
Опционально |
||||
Средство контейнеризации |
Да |
19.03.14 |
Рекомендовано |
Инструмент для автоматизации работы с контейнерами |
|
Сервис централизованного хранения репозиториев артефактов (хранилище артефактов) |
Да |
3.42.0 |
Рекомендовано |
Интегрированная платформа для проксирования, хранения и управления зависимостями Java (Maven), образами, а также распространения ПО |
|
3.43.0 |
Опционально |
||||
Nexus Repository Manager OSS |
3.43.0 |
Опционально |
|||
Сервис централизованного хранения репозиториев исходного кода |
Да |
15.7 и выше |
Рекомендовано |
Хранение конфигураций при автоматизированной установке |
|
7.6.7 |
Опционально |
||||
Сервис интеграции и оркестрации микросервисов в облаке |
Нет |
1.6 и выше |
Опционально |
Сервис интеграции микросервисов в облаке |
|
Система хранения и распространения secrets |
Нет |
1.10 и выше |
Опционально |
Система, обеспечивающая безопасный и надежный способ хранения и распространения secrets |
|
Система мониторинга (сбор и хранение метрик) |
Нет |
2.37 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендован сервис для сбора прикладных и инфраструктурных метрик и отправки их в целевую систему хранения – Объединенный мониторинг Unimon Platform V Monitor, см. раздел «Платформенные зависимости» |
Система для сбора и хранения численных метрик |
|
Сервис для сбора метрик |
Нет |
Victoria metrics |
1.5 и выше |
Опционально |
Инструмент для сбора метрик |
Интерпретатор NodeJS |
Нет |
14-buster |
Рекомендовано |
Кроссплатформенная среда исполнения с открытым исходным кодом |
|
Менеджер пакетов |
Нет |
3.8 и выше |
Опционально |
Инструмент для автоматизации создания, настройки и развертывания приложений и служб в k8s |
|
Инструмент командной строки |
Нет |
1.20.5 и выше |
Опционально |
Интерфейс командной строки для взаимодействия с кластером |
Примечание:
*
Да — категория ПО обязательна для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данной категории ПО).
Нет — категория ПО необязательна для функционирования сервиса (это означает, что сервис может выполнять свои основные функции без установки данной категории ПО).
**
Рекомендовано — рекомендованный правообладателем АО «СберТех» продукт.
Опционально — альтернативный по отношению к рекомендованному правообладателем АО «СберТех» продукт.
Платформенные зависимости#
У компонента SVPX реализована интеграция со следующими компонентами из состава продукта:
Наименование компонента |
Код |
Описание |
|---|---|---|
Управление политиками |
POLM |
Управление политиками формирует конфигурации компонент сервисного и граничного прокси |
Граничный прокси |
IGEG |
Обработанная конфигурация загружается в виде настроек в IGEG. Также IGEG подписывается на рассылку конфигураций от POLM |
Для настройки, контроля и функционирования компонента SVPX реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:
Наименование продукта |
Код |
Версия продукта |
Код и наименование компонента |
Обязательность установки (да/нет) |
Описание |
Аналог других производителей |
|---|---|---|---|---|---|---|
Platform V Monitor |
OPM |
4.1 |
LOGA/Журналирование |
Нет |
Сервис предназначен для сохранения логов и предоставляет возможности для их просмотра и анализа конечными пользователями (сотрудниками поддержки) |
Любой сервис сбора записей о событиях, совместимый с fluent-bit, например: Elasticsearch, InfluxDB |
MONA/Объединенный мониторинг Unimon |
Нет |
Продукт предназначен для сбора данных о производительности, доступности и работоспособности прикладных приложений и инфраструктуры |
Prometheus 2.21.0 |
|||
Platform V DropApp |
K8S |
1.1 и выше |
K8SC K8S Core |
Нет |
Дистрибутив Kubernetes со встроенными механизмами мультитенантности и бессерверным исполнением |
Kubernetes |
Platform V SberLinux OS Server |
SLO |
8.7 |
INST Операционная система |
Нет |
OС контейнеров для запуска модулей компонента |
ОС Альт 8 СП |
Platform V IAM |
IAM |
1.2 и выше |
KCSE KeyCloak.SE |
Нет |
Сервис для управления доступом к информационным ресурсам и учетными записями |
Keycloak 16.1.x и выше |
Platform V Synapse Service Mesh |
SSM |
3.9 |
SMDL DevOps инструменты Service Mesh |
Нет |
Сборка, установка и администрирование сервисов на Synapse |
Istio control plane 1.12 |
GATM Сбор и анализ метрик |
Нет |
Автоматизированный сбор, агрегация и передача метрик телеметрии интеграционных сервисов на хранение |
Примечание:
***
Да — компонент или продукт необходим для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данного компонента).
Нет — необязательный для функционирования сервиса компонент или продукт (это означает, что сервис может выполнять свои основные функции без установки данного компонента).
****
Рекомендуется установка программного продукта, правообладателем которого является АО «СберТех», при этом не исключена возможность (допускается правообладателем) использования аналога других производителей. Аналоги, в отношении которых продукт успешно прошел испытания и подтвердил свою работоспособность, указаны в разделе «Системное программное обеспечение».
Аппаратные требования#
Для установки компонента требуется следующая конфигурация аппаратного обеспечения, рассчитанная в зависимости от схемы взаимодействия и количества TPS.
Процессор
CPU измеряется в милликорах (millicores). Один милликор равен 1⁄1000 ядра. 1000 милликоров = 1 ядро.
Память
Память измеряется в KБ, MБ, ГБ и TБ.
Единицы измерения:
1024 bytes = 1 KБ;
1024 KB = 1 MБ;
1024 MB = 1 ГБ;
1024 ГБ = 1 TБ.
На промышленных стендах для повышения надежности для критичных сервисов рекомендуется устанавливать request = limit.
Стандартные значения ресурсов сервисного прокси определенные в настройках контрольной панели (компонент POLM):
CPU Request, millicores |
CPU Limit, millicores |
Memory Request, MБ |
Memory Limit, MБ |
|---|---|---|---|
100 |
200 |
128 |
256 |
Примерные значения по ресурсам сервисного прокси в зависимости от нагрузки на прикладной сервис с инжектированным сервисным прокси:
TPS |
CPU / Request, millicores |
CPU / Limit, millicores |
Memory / Request, MБ |
Memory / Limit, MБ |
|---|---|---|---|---|
0-10 |
100 |
200 |
200 |
400 |
10-100 |
250 |
500 |
250 |
500 |
>100 |
350 |
700 |
300 |
600 |
Для сервисного прокси требуемые и максимальные значения задаются администраторами с помощью настроек контрольной панели (компонент POLM). Если требуется установить другие значения ресурсов сервисного прокси, то можно переопределить их с помощью аннотаций в Deployment прикладного сервиса.
Чтобы переопределить настройки по умолчанию, необходимо добавить аннотацию в Deployment прикладного сервиса:
apiVersion: apps/v1
kind: Deployment
spec:
template:
metadata:
annotations:
sidecar.istio.io/inject: 'true'
sidecar.maistra.io/proxyCPULimit: 300m
sidecar.maistra.io/proxyMemoryLimit: 300Mi
sidecar.istio.io/proxyCPU: 300m
sidecar.istio.io/proxyMemory: 300Mi
Подготовка окружения#
Перед установкой проверьте соблюдение следующих условий:
Развернут и настроен кластер Kubernetes версии 1.19 и выше, в соответствии с требованиями, предъявляемыми к Платформе.
В кластере создан проект для развертывания контрольной панели (компонент POLM);
В кластере создан и подключен к контрольной панели (компонент POLM) прикладной проект. Действия по подключению проекта выполняют администраторы контрольной панели.
Установка#
Этот документ содержит названия переменных, которые применимы для различных сред контейнеризации, указанных в системных требованиях руководства по установке.
Установка платформенных зависимостей производится по инструкции, входящей в комплект соответствующих дистрибутивов.
Перед началом установки сервисного прокси необходимо убедиться в том, что в кластере платформы установлен компонент POLM, в состав которого входит докер-образ сервисного прокси.
Установка сервисного прокси представляет собой внедрение в Pod прикладного сервиса дополнительного контейнера (istio-proxy), функционирующего в режиме sidecar.
Чтобы установить в Pod прикладного сервиса контейнер с сервисным прокси, добавьте аннотацию в Deployment приложения прикладного сервиса. Проект прикладного сервиса при этом должен быть подключен к одной из контрольных панелей (компонент POLM), в соответствии с документацией на POLM.
apiVersion: apps/v1
kind: Deployment
spec:
template:
metadata:
annotations:
sidecar.istio.io/inject: 'true'
Для внесения изменений в конфигурацию уже установленного проекта пользователь должен иметь права изменения ресурсов Deployment в проекте.
Обновление#
Все настройки сервисного прокси устанавливаются в проекте контрольной панели, в котором развернут сервис управления политиками (компонент POLM).
Именно сервис Управления политиками автоматически добавляет (инжектит) сервисный прокси в прикладной Pod. Для обновления сервисного прокси необходимо обновить сервис управления политиками (компонент POLM) на новую версию, чтобы он при инжекте вставлял новый образ сервисного прокси. Описание процесса обновления приведено в разделе «Обновление» документа «Руководство по установке» компонента POLM.
Для обновления сервисного прокси в приложении, требуется провести рестарт Pod, после чего новая версия сервисного прокси загрузится автоматически для всех прикладных сервисов, подключенных к контрольной панели. Рестарт может осуществляться с использованием различных стратегий, например, rolling update, в зависимости от требований приложений, запущенных в данном Pod.
Удаление#
Для удаления Sidecar istio-proxy из Pod прикладного сервиса необходимо отредактировать Deployment приложения прикладного сервиса и указать false в значении sidecar.istio.io/inject:
apiVersion: apps/v1
kind: Deployment
spec:
template:
metadata:
annotations:
sidecar.istio.io/inject: 'false'
Для внесения изменений в конфигурацию уже установленного проекта пользователь должен иметь права изменения ресурсов Deployment в проекте.
Проверка работоспособности#
Проверка работоспособности платформенных зависимостей производится по инструкции, входящей в комплект соответствующих дистрибутивов.
Зайдите в нужный проект.
В меню выберите пункт Workload/Pods.
На странице найдите нужный Pod прикладного сервиса.
Нажмите на вкладку
⋮и выберите Logs.Выберите контейнер сервисного прокси (istio-proxy).
Проверьте, что в консоли нет ошибок.
Убедитесь, что есть строка Envoy proxy is ready (прокси готов к работе).

Также можно убедиться в том, что сам сервисный прокси запущен, путем просмотра статуса контейнера istio-proxy. Статусы Ready и Started должны быть в значении True.
Проверка работоспособности интеграций#
При реализации архитектуры с компонентами LOGA и MONA необходимо ознакомиться с методами проверки работоспособности в документации указанных компонентов.
Откат#
Откат сервисного прокси на предыдущую версию может быть выполнен только в рамках отката компонента POLM в контрольной панели. Описание процесса отката приведено в разделе «Откат» документа «Руководство по установке» компонента POLM.
Часто встречающиеся проблемы и пути их устранения#
Проблема |
Пути решения |
|---|---|
Сервисный прокси не может подключиться к компоненту POLM, в системном журнале видно сообщение Envoy proxy is NOT ready |
Проверьте корректность подключения к контрольной панели. |
До прикладного приложения не доходят запросы |
Проверьте access-логи сервисного прокси. Возможные варианты сообщений описаны ниже |
В access-логе сервисного прокси видно сообщение: |
Авторизуйтесь в прикладном проекте. Если вызов направлен на внутренний сервис, проверьте наличие сервиса с таким именем и корректность параметров host/порт в конфигурационных файлах прикладного проекта — Gateway, DestinationRule и VirtualService. Если вызов направлен на внешний host, проверьте наличие конфигурационного файла ServiceEntry для данного сочетания host/порт |
В access-логе сервисного прокси видно сообщение: |
Авторизуйтесь в прикладном проекте. Проверьте корректность конфигурации раздела connectionPoolSettings в DestinationRule |
В access-логе сервисного прокси видно сообщение: |
Авторизуйтесь в прикладном проекте. Если используется автоматическая аутентификация ISTIO_MUTUAL — проверьте наличие конфликта в разделе trafficPolicy конфигурационного файла DestinationRule, относящегося к проблемному сервису, и раздела Spec/mTLS конфигурационного файла peerAuthentication. В случае указания разных режимов работы в поле tls — возможны указанные ошибки |
В access-логе сервисного прокси видно сообщение: |
Авторизуйтесь в прикладном проекте. Проверьте наличие вызываемого сервиса — в веб-интерфейсе Home/Networking/Services/Search_by_name найдите сервис. Проверьте наличие запущенного Pod, на который ссылается сервис — в веб-интерфейсе кликните правой кнопкой мыши на найденный сервис, выберите вкладку Pods на открывшейся странице, убедитесь, что статус Pods на данной странице имеет значение running |
Если указанные пути решения не помогли, обратитесь к системным администраторам контрольной панели.
Чек-лист валидации установки#
Слева в меню Workloads выберите раздел Pods.
В списке выберите Pod нужного прикладного сервиса и перейдите в него.
Проверьте, что на вкладке Details в разделе Containers появился контейнер с сервисным прокси (istio-proxy).
Проверьте интеграции компонента SVPX с внешними системами и компонентами. Порядок проверки приведен в подразделе «Проверка работоспособности интеграций».