Руководство по установке#
В руководстве приведены инструкции по установке компонента VISL.
Термины и определения#
Термин/аббревиатура |
Определение |
|---|---|
URL |
Uniform Resource Locator, унифицированный адрес ресурса |
Platform V Synapse Service Mesh / SSM |
Программный продукт на базе Istio SE, обеспечивающий возможность создания сервисной сети поверх Платформенной в Kubernetes |
Istio SE |
Настраиваемая сервисная сетка, служащая для взаимодействия, мониторинга и обеспечения безопасности контейнеров в кластере Kubernetes |
Контрольная панель |
Проект, где запущены управляющие приложения SSM |
Платформа |
Платформа оркестрации приложений с средствами автоматизации и управления на основе политик, например Kubernetes |
Граничный прокси/IGEG |
Компонент Граничный прокси продукта Platform V Synapse Service Mesh |
Deployment |
Набор инструкций для запуска приложения в Kubernetes |
Pod |
Набор контейнеров внутри узла кластера Kubernetes |
Config Map |
Объект API Kubernetes, который позволяет отделить конфигурационные файлы от содержимого образа |
Панельная VISL |
Версия VISL, которая запускается в контрольной панели и обслуживает проекты подключенные к этой панели |
Централизованная VISL |
Версия VISL, которая запускается в одном экземпляре на весь кластер и обслуживает все проекты кластера, подключенные к ней. Централизованная версия использует тот же образ, что и панельная VISL, но другую конфигурацию манифестов Kubernetes. Отличия будут указаны в документации |
OpenShift (OSE) |
Корпоративная платформа для разработки, развертывания и эксплуатации классических и контейнерных приложений в физических, виртуальных и общедоступных облачных средах |
Kubernetes (k8s) |
Портативная расширяемая платформа с открытым исходным кодом для управления контейнеризованными рабочими нагрузками и сервисами |
GATM |
Компонент «Сбор и анализ метрик» из состава программного продукта Platform V Synapse Service Mesh (SSM) |
SMDL |
Компонент для сборки, установки и администрирование сервисов на Synapse из состава программного продукта Platform V Synapse Service Mesh (SSM) |
Secret Management System |
Cистема управления секретами (пароли, ключи шифрования и т.п.) приложений |
Системные требования#
Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней.
Системное программное обеспечение#
Для функционирования программного компонента VISL предъявляются требования по наличию следующего программного обеспечения:
Категория ПО |
Обязательность установки |
Наименование ПО |
Версия |
Продукт, функциональная совместимость с которым подтверждена |
Назначение категории ПО |
|---|---|---|---|---|---|
Операционная система |
Да |
10 |
Рекомендовано. Правообладателем АО «СберТех» также рекомендована Операционная система (INST) – Platform V SberLinux OS Server, см. раздел «Платформенные зависимости» |
ОС контейнеров для запуска модулей компонента |
|
8 |
Опционально |
||||
Платформа для разработки, доставки и запуска контейнерных приложений |
Да |
4.6 и выше |
Рекомендовано |
Платформа контейнеризации с открытым исходным кодом |
|
Среда оркестрации контейнеров |
Да |
1.19 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендована среда контейнеризации – Platform V DropApp, см. раздел «Платформенные зависимости» |
Открытое программное обеспечение для оркестрации контейнеризированных приложений |
|
4.6 и выше |
Опционально |
Платформа контейнеризации для запуска компонентов сервиса |
|||
Система мониторинга (сбор и хранение метрик) |
Нет |
2.37 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендован сервис для сбора прикладных и инфраструктурных метрик и отправки их в целевую систему хранения – Объединенный мониторинг Unimon Platform V Monitor, см. раздел «Платформенные зависимости» |
Система для сбора и хранения численных метрик |
|
Сервис для сбора метрик |
Нет |
Victoria metrics |
1.5 и выше |
Опционально |
Инструмент для сбора метрик |
Сервис централизованного хранения репозиториев артефактов (хранилище артефактов) |
Да |
3.42.0 |
Рекомендовано |
Интегрированная платформа для проксирования, хранения и управления зависимостями Java (Maven), образами, а также распространения ПО |
|
Nexus Repository Manager PRO |
3.43.0 |
Опционально |
|||
Nexus Repository Manager OSS |
3.43.0 |
Опционально |
|||
Сервис централизованного хранения репозиториев исходного кода |
Да |
15.7 и выше |
Рекомендовано |
Хранение конфигураций при автоматизированной установке |
|
7.6.7 и выше |
Опционально |
Сервис интеграции микросервисов в облаке |
|||
Сервис интеграции и оркестрации микросервисов в облаке |
Нет |
1.6 и выше |
Опционально. Правообладателем АО «СберТех» также рекомендован сервис интеграции и оркестрации микросервисов в облаке, основанный на Istio – Platform V Synapse Service Mesh, см. раздел «Платформенные зависимости» |
Панель управления с открытым исходным кодом, служащая для обеспечения безопасности контейнеров в среде контейнеризации Kubernetes |
|
Менеджер пакетов |
Нет |
3 и выше |
Опционально |
Диспетчер пакетов для Kubernetes, упрощающий для разработчиков и операторов упаковку, настройку и развертывание приложений и служб в кластерах Kubernetes |
|
Иное |
Нет |
1.20.5 и выше |
Опционально |
Интерфейс командной строки для взаимодействия с кластером |
|
Иное |
Да |
NODE.JS |
14-buster |
Рекомендовано |
Кроссплатформенная среда исполнения с открытым исходным кодом |
Примечание:
*
Да — категория ПО обязательна для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данной категории ПО).
Нет — категория ПО необязательна для функционирования сервиса (это означает, что сервис может выполнять свои основные функции без установки данной категории ПО).
**
Рекомендовано — рекомендованный правообладателем АО «СберТех» продукт.
Опционально — альтернативный по отношению к рекомендованному правообладателем АО «СберТех» продукт.
Каких-либо требований безопасности к рабочему окружению и к платформе K8S/OSE со стороны VISL не предъявляется.
Платформенные зависимости#
Для настройки, контроля и функционирования компонента реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:
Наименование продукта |
Код |
Версия продукта |
Код и наименование компонента |
Обязательность установки (да/нет) |
Описание |
Аналог других производителей |
|---|---|---|---|---|---|---|
Platform V Monitor |
OPM |
4.1 |
MONA Объединенный мониторинг Unimon |
Нет |
Продукт предназначен для сбора данных о производительности, доступности и работоспособности прикладных приложений и инфраструктуры |
Prometheus 2.37.0 и выше, Victoria Metrics от 1.5 и выше |
Platform V Synapse Service Mesh |
SSM |
3.9 |
GATM Сбор и анализ метрик |
Нет |
Сервис для сбора прикладных и инфраструктурных метрик и отправки их в целевую систему хранения |
Prometheus 2.37.0 и выше, Victoria Metrics от 1.5 и выше |
Platform V Synapse Service Mesh |
SSM |
3.9 |
POLM Управление политиками |
Да |
Панель управления с открытым исходным кодом, служащая для взаимодействия, мониторинга и обеспечения безопасности контейнеров в среде контейнеризации Kubernetes |
Istio control plane 1.12 |
Platform V Synapse Service Mesh |
SSM |
3.9 |
IGEG Граничный прокси |
Нет |
Сервис для обеспечения управляемого вызова интеграционных сервисов прикладной части |
Istio proxy 1.12 |
Platform V Synapse Service Mesh |
SSM |
3.9 |
SVPX Сервисный прокси |
Нет |
Прокси-сервер L7 и коммуникационная шина, разработанные для крупных современных сервис-ориентированных архитектур |
– |
Platform V Synapse Service Mesh |
SSM |
3.9 |
SMDL DevOps инструменты Service Mesh |
Нет |
Сборка, установка и администрирование сервисов на Synapse |
|
Platform V SberLinux OS Server |
SLO |
8.7 |
INST Операционная система |
Нет |
ОС контейнеров для запуска модулей компонента |
ОС Альт 8 СП |
Platform V DropApp |
K8S |
1.1 и выше |
K8SC K8S Core |
Нет |
Дистрибутив Kubernetes со встроенными механизмами мультитенантности и бессерверным исполнением |
Kubernetes, Red Hat OpenShift Container Platform |
Минимальные ресурсы#
Минимальные ресурсы, необходимые для панельной VISL:
Контейнер |
Режим работы приложения |
CPU Request, core |
Memory Request, Mi |
CPU Limit, core |
Memory Limit, Mi |
|---|---|---|---|---|---|
Приложение |
Отдельный pod |
1 |
4000 |
1 |
4000 |
Минимальные ресурсы, необходимые для централизованной VISL:
Контейнер |
Режим работы приложения |
CPU Request, core |
Memory Request, Mi |
CPU Limit, core |
Memory Limit, Mi |
|---|---|---|---|---|---|
Приложение |
Отдельный pod |
6 |
6000 |
6 |
6000 |
Аппаратные требования#
Перед установкой проверьте соблюдение следующих условий:
Развернут и настроен кластер Kubernetes версии 1.19 и выше или OpenShift 4.6 и выше в соответствии с требованиями предъявляемыми к Платформе
В кластере создан проект (namespace), в котором будет разворачиваться VISL
При работе компонента VISL с IGEG требуется наличие развернутого компонента SSM - POLM и подключенный проект к контрольной панели (POLM)
В проекте создана учетная запись с правами на загрузку артефактов (администратор проекта)
Получена ссылка на целевой Docker-репозиторий
В проект добавлен секрет для загрузки docker-образов из целевого Docker-репозитория
В проекте имеются свободные ресурсы по лимитам и реквестам не меньше, чем зарезервировано в конфигурационных артефактах
При установке с использованием консоли, на рабочем месте должен быть установлен клиент Kubernetes (kubectl) или OpenShift CLI (oc)
При установке с использованием консоли, на рабочем месте должен быть установлен клиент Helm
Специфические требования настройки безопасности окружения отсутствуют.
Для доступа к веб-интерфейсу VISL необходимо наличие установленного на компьютере браузера. Рекомендуются браузеры на основе Chromium.
Состав дистрибутива#
Дистрибутив содержит следующие конфигурации, в директории templates, объединенные в файлы шаблонов Helm:
Элемент дистрибутива |
Описание |
|---|---|
deployment.yaml |
Содержит параметры связанные с развертыванием VISL и граничных прокси IGEG |
configmap.yaml |
Содержит параметры конфигурации VISL |
service.yaml |
Содержит конфигурации сервисов для VISL и IGEG |
route.yaml |
Позволяет получить доступ извне к VISL, кластер OpenShift |
ingress.yaml |
Позволяет получить доступ извне к VISL, кластер Kubernetes |
serviceaccount.yaml |
Содержит сервисы аккаунты для запуска VISL |
destinationrule.yaml |
Содержит настройки Destination Rule |
virtualservice.yaml |
Содержит настройки Virtual Service |
serviceentry.yaml |
Содержит настройки Service Entry |
gateway.yaml |
Содержит настройки Gateway |
values.yaml |
Содержит примеры заполнения стендозависимых параметров |
За управление версией VISL (панельная / централизованная) отвечает набор параметров в файле values.yaml (см. пункт 3, раздела «Установка» текущего документа).
В данном дистрибутиве VISL работает через Граничные прокси (ingress-gateway и egress-gateway), на которых осуществляется терминация трафика. Также возможна конфигурация без Istio SE.
Изменяемые параметры в ConfigMap:
api.namespaces.label_selector - селектор меток Kubernetes (например, istio.io/rev=istio-system), по которому определяются доступные для VISL пространства имен; Не влияет на явный доступ к пространству имен.
auth.strategy - стратегия аутентификации (token, openshift, anonymous).
deployment.accessible_namespaces - список namespaces, к которым VISL должен иметь доступ. Если пропустить данный параметр, то по умолчанию: доступны все namespaces, за исключением указанных выше в блоке api.namespaces.exclude. Запись со специальным значением ** (две звездочки) используется чтобы VISL был предоставлен доступ ко всем namespaces через одну роль кластера (при использовании ** (две звездочки) требуется, чтобы оператору уже были предоставлены разрешения на создание ClusterRole и ClusterRoleBinding). Для централизованного VISL задается список namespaces.
external_services.prometheus.url - указать url сервиса для сбора метрик;
external_services.prometheus.component_status.app_label - указать app label из pod сервиса для сбора метрик.
external_services.prometheus.auth.insecure_skip_verify: false - установлено значение false, чтобы не пропускать проверку действительности сертификата, когда VISL связывается с Prometheus через HTTPs;
external_services.prometheus.auth.ca_file: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt - сертификат используемый при доступе к сервису для сбора метрик по протоколу HTTPs, если его не указать будет ошибка - x509 certificate signed by unknown authority;
external_services.istio.config_map_name - указать имя config_map Istio SE. Для централизованного VISL оставить istio-basic;
external_services.istio.url_service_version - сервис Istio SE для определения версии Istio SE;
external_services.istio.istio_injection_annotation: sidecar.istio.io/inject - значение данной аннотации (true/false) отображается в веб-интерфейсе на вкладке workload (нужно кликнуть по любому workload и в открывшемся окне будет значение Istio Sidecar Inject Annotation);
installation_tag - тег для идентификации экземпляра VISL;
istio_labels.injection_label_name: istio-injection - метка по которой определяется вкл/выкл sidecar injection;
istio_namespace - пространство имен, в котором установлен Istio SE. Если оставить пустым, предполагается, что это тоже пространство имен, в котором установлен компонент VISL;
kiali_feature_flags.istio_injection_action: false - данный флаг включает функцию управления аннотацией sidecar.istio.io/inject (на вкладке workload нужно кликнуть по любому workload и в открывшемся окне в правом верхнем углу появится кнопка Acnions которая управляет данной аннотацией если у пользователя есть на это права);
kubernetes_config.cache_enabled - включить кеширование ресурсов;
kubernetes_config.cache_namespaces - список пространств имен, ресурсы в которых будут кешироваться;
kubernetes_config.excluded_workloads - список ресурсов, которые не будут кешироваться. Endpoints, ReplicationController, DeploymentConfig, StatefulSet, Job, CronJobs, и ReplicaSet будут исключены, если присутствуют в этом списке.
server.web_root - корневой путь контекста для API и проб;
Выбор способа установки#
Базовым способом установки является ручная установка с помощью Helm Charts, описанная ниже. Дополнительно поддерживается автоматическая установка с помощью jobs, входящих в компонент SMDL продукта Synapse Service Mesh (сценарий описан в разделе «Автоматизированная установка VISL»).
Подготовка окружения#
VISL использует данные, хранящиеся в сервисе для сбора метрик (например MONA), для построения графа, отображения метрик и т.д. Сервис для сбора метрик получает их у pod istio-proxy. Включение этой функции осуществляется путем применения EnvoyFilter. В контрольных панелях с Istio SE свой набор EnvoyFilter и они создаются вместе контрольной панелью. Ручная установка не требуется. EnvoyFilter для контрольных панелей с RHSM приведены ниже.
Если панельная версия VISL устанавливается в контрольную панель с RHSM, то нужно убедиться в наличии 2-х EnvoyFilter с именами начинающимися на - stats-filter и tcp-stats-filter, в случае отсутствия понадобиться их создать.
Для централизованной VISL, при необходимости, нужно создавать EnvoyFilter в каждом проекте, который к ней подключается. Если в контрольной панели с RHSM, к которой подключен проект (доступный для VISL) уже есть EnvoyFilter с именами начинающимися на - stats-filter и tcp-stats-filter, то дополнительного создания EnvoyFilter в проекте не требуется.
Манифесты EnvoyFilter для панельной и централизованной VISL приведены ниже:
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: stats-filter-1.6-basic
spec:
configPatches:
- applyTo: HTTP_FILTER
match:
context: SIDECAR_OUTBOUND
listener:
filterChain:
filter:
name: envoy.http_connection_manager
subFilter:
name: envoy.router
proxy:
proxyVersion: ^1\.6.*
patch:
operation: INSERT_BEFORE
value:
name: istio.stats
typed_config:
'@type': type.googleapis.com/udpa.type.v1.TypedStruct
type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
value:
config:
configuration: |
{
"debug": "false",
"stat_prefix": "istio"
}
root_id: stats_outbound
vm_config:
code:
local:
inline_string: envoy.wasm.stats
runtime: envoy.wasm.runtime.null
vm_id: stats_outbound
- applyTo: HTTP_FILTER
match:
context: SIDECAR_INBOUND
listener:
filterChain:
filter:
name: envoy.http_connection_manager
subFilter:
name: envoy.router
proxy:
proxyVersion: ^1\.6.*
patch:
operation: INSERT_BEFORE
value:
name: istio.stats
typed_config:
'@type': type.googleapis.com/udpa.type.v1.TypedStruct
type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
value:
config:
configuration: |
{
"debug": "false",
"stat_prefix": "istio"
}
root_id: stats_inbound
vm_config:
code:
local:
inline_string: envoy.wasm.stats
runtime: envoy.wasm.runtime.null
vm_id: stats_inbound
- applyTo: HTTP_FILTER
match:
context: GATEWAY
listener:
filterChain:
filter:
name: envoy.http_connection_manager
subFilter:
name: envoy.router
proxy:
proxyVersion: ^1\.6.*
patch:
operation: INSERT_BEFORE
value:
name: istio.stats
typed_config:
'@type': type.googleapis.com/udpa.type.v1.TypedStruct
type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm
value:
config:
configuration: |
{
"debug": "false",
"stat_prefix": "istio",
"disable_host_header_fallback": true
}
root_id: stats_outbound
vm_config:
code:
local:
inline_string: envoy.wasm.stats
runtime: envoy.wasm.runtime.null
vm_id: stats_outbound
# Для централизованной VISL добавить блок
# workloadSelector:
# labels: {}
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: tcp-stats-filter-1.6-basic
spec:
configPatches:
- applyTo: NETWORK_FILTER
match:
context: SIDECAR_INBOUND
listener:
filterChain:
filter:
name: envoy.tcp_proxy
proxy:
proxyVersion: ^1\.6.*
patch:
operation: INSERT_BEFORE
value:
name: istio.stats
typed_config:
'@type': type.googleapis.com/udpa.type.v1.TypedStruct
type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
value:
config:
configuration: |
{
"debug": "false",
"stat_prefix": "istio"
}
root_id: stats_inbound
vm_config:
code:
local:
inline_string: envoy.wasm.stats
runtime: envoy.wasm.runtime.null
vm_id: tcp_stats_inbound
- applyTo: NETWORK_FILTER
match:
context: SIDECAR_OUTBOUND
listener:
filterChain:
filter:
name: envoy.tcp_proxy
proxy:
proxyVersion: ^1\.6.*
patch:
operation: INSERT_BEFORE
value:
name: istio.stats
typed_config:
'@type': type.googleapis.com/udpa.type.v1.TypedStruct
type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
value:
config:
configuration: |
{
"debug": "false",
"stat_prefix": "istio"
}
root_id: stats_outbound
vm_config:
code:
local:
inline_string: envoy.wasm.stats
runtime: envoy.wasm.runtime.null
vm_id: tcp_stats_outbound
- applyTo: NETWORK_FILTER
match:
context: GATEWAY
listener:
filterChain:
filter:
name: envoy.tcp_proxy
proxy:
proxyVersion: ^1\.6.*
patch:
operation: INSERT_BEFORE
value:
name: istio.stats
typed_config:
'@type': type.googleapis.com/udpa.type.v1.TypedStruct
type_url: type.googleapis.com/envoy.extensions.filters.network.wasm.v3.Wasm
value:
config:
configuration: |
{
"debug": "false",
"stat_prefix": "istio"
}
root_id: stats_outbound
vm_config:
code:
local:
inline_string: envoy.wasm.stats
runtime: envoy.wasm.runtime.null
vm_id: tcp_stats_outbound
# Для централизованной VISL добавить блок
# workloadSelector:
# labels: {}
Необходимо выпустить сертификаты. Инструкция по выпуску сертификатов находится в документе в разделе «Генерация сертификатов».
В случае необходимости произвести интеграцию граничного прокси IGEG и VISL с Secret Management System (Хранилище секретов). Для этого требуется добавить аннотации в deployment компонентов IGEG и VISL.
Инструкция для IGEG находится в разделе «Руководство по установке» документации по компоненте IGEG.
Пример аннотаций для VISL представлен в разделе «Установка» текущего документа. Перед проведением интеграции с Secret Management System сертификаты должны быть в него загружены.
Если интеграция с Secret Management System не производится, необходимо создать хранилище типа secret с сертификатами, пример находится в разделе «Генерация сертификатов».
Установка#
Ручная установка сервиса VISL#
Перед началом установки убедитесь, что выполнена подготовка окружения.
Для ручной установки сервиса выполните следующие действия:
Создайте директорию установки.
Шаг |
Действия |
Описание |
|---|---|---|
Создайте директорию для установки. |
Создайте папку. Пример: visl. |
|
Разархивируйте файлы. |
Распакуйте в созданную папку архив с конфигурационными артефактами |
|
Соберите докер образ для установки приложения |
Выполните команду находясь в директории |
|
Загрузите полученный докер образ в реджестри |
Выполните команду: |
<путь> - путь к образу в registry например: test.ru/ssm-VISL/VISL |
Подключитесь к проекту.
Для подключения через консоль Платформы:
Шаг |
Действия |
Описание |
|---|---|---|
Установка в Kubernetes: запустите консольного клиента платформы оркестрации контейнеров (kubectl) |
Введите в командную строку команды, используя клиента: |
|
Установка в Kubernetes: установка проекта по умолчанию |
Введите команду: |
|
Установка в OpenShift: запустите консольного клиента платформы оркестрации контейнеров |
Введите в командную строку команды, используя клиента : |
Настройка стендозависимых параметров.
Пример конфигурационного файла package/conf/k8s/base/helm/values.yaml:
# kubernetes or openshift
containerOrchestrationSystem: kubernetes
# for manual installation, ex. image: example.registry/visl/visl:latest
image:
# for SMDL installation
common:
registry: example.registry
registry_path: registry_path
imagePullSecrets:
- name: image-pull
nameOverride: ""
fullnameOverride: visl
# "true" or "false"
automountServiceAccountToken: "false"
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: "visl"
podAnnotations:
prometheus.io/port: "9090"
prometheus.io/scrape: "true"
ingress:
# true or false
enabled: false
className: nginx
annotations:
nginx.ingress.kubernetes.io/ssl-passthrough: 'true'
host: visl.example.host
path: /
pathType: Prefix
tls: {}
# - secretName: chart-example-tls
resources:
requests:
cpu: 200m
memory: 200Mi
limits:
cpu: 200m
memory: 200Mi
config:
api:
namespaces:
# panel version
# used when fetching the list of available namespaces
label_selector:
# true or false
enabled: false
value: istio.io/rev=istio-system
auth:
# authentication strategy to use when users log into VISL
# strategy: anonymous
# strategy: token
strategy: openshift
openshift:
# config.auth.openshift.client_id_prefix = fullnameOverride
# <Route manifest metadata.name> = config.auth.openshift.client_id_prefix
# <OAuthClient manifest metadata.name> = <Route manifest metadata.name>-<Route manifest metadata.namespace>
# To use openshift strategy need to provide Role/visl for the VISL service account in VISL namespace
client_id_prefix: visl
deployment:
# VISL namespace
namespace: visl-namespace
# list of namespaces to which VISL is to be given permissions
accessible_namespaces:
# true or false
enabled: true
value: [metrics, visl-namespace, new-project]
external_services:
istio:
istiod:
# prometheus configuration to get Istio SE telemetry
prometheus:
# auth:
# ca_file: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
# insecure_skip_verify: false
# password: ''
# token: ''
# type: basic
# use_kiali_token: false
# username: internal
# component_status:
# app_label: prometheus-sbt
# is_core: true
# namespace: visl-test3
url: http://prometheus-tls.metrics.svc.cluster.local:9080
installation_tag: VISL [visl-namespace]
istio_component_namespaces:
# Istio SE namespace
istiod: visl-namespace
prometheus: metrics
istio_labels:
# used to define what application a workload belongs to
app_label_name: app
# used to define what version of the application a workload belongs to
version_label_name: version
# Istio SE namespace
istio_namespace: visl-namespace
# Istiod service name
istio_serviceIstiod: istiod-istio-system
kubernetes_config:
# true or false
# for caching need to provide ClusterRole/kiali-se-central-cluster-role for the VISL service account in each cache_namespaces
cache_enabled: true
# panel version [".*"]
# cluster version [visl-namespace, new-project]
cache_namespaces:
- metrics
- visl-namespace
- new-project
server: {}
# server:
# path for the VISL console and API endpoints and readiness probes
# web_root: /kiali
openshift:
route:
# true or false
enabled: true
host: visl.example.host
tls:
enabled: true
termination: passthrough
igeg:
# add IstioSE configuration(ingress/egress gateway, sidecar)?
# true or false
enabled: true
# IGEG version
version: 1.17.3-1_sberlinux
imagePullSecrets:
- name: image-pull
image: example.registry/polm/proxyv2:latest
# Control plane configuration to which VISL is connected
controlPlane:
# Istio SE namespace
namespace: istio-system
# Istiod service name
serviceIstiod: istiod-istio-system
# add secman-injector?
secman:
# true or false
enabled: true
proxyConfig:
# IGEG tracing configuration
tracing:
enable: true
custom_tags:
enabled: true
zipkin:
address: synapse-tracer-svc.istio-system.svc.cluster.local:8788
tlsSettings:
enabled: true
caCertificates: /var/run/secrets/istio/root-cert.pem
mode: SIMPLE
subjectAltNames:
- spiffe://cluster.local/ns/istio-system.svc/sa/default
vaultAnnotations:
vault.hashicorp.com/role: synapse
vault.hashicorp.com/namespace: ""
vault.hashicorp.com/auth-path: auth/synapse
vault.hashicorp.com/log-level: info
vault.hashicorp.com/agent-inject: 'true'
vault.hashicorp.com/agent-init-first: 'true'
vault.hashicorp.com/agent-requests-cpu: 125m
vault.hashicorp.com/agent-requests-mem: 32Mi
vault.hashicorp.com/agent-limits-cpu: 250m
vault.hashicorp.com/agent-limits-mem: 64Mi
vault.hashicorp.com/agent-pre-populate: 'true'
vault.hashicorp.com/agent-pre-populate-only: 'true'
vault.hashicorp.com/agent-inject-secret-tls.key: 'true'
vault.hashicorp.com/agent-inject-secret-ca.crt: 'true'
vault.hashicorp.com/agent-inject-secret-tls.crt: 'true'
vault.hashicorp.com/agent-run-as-group: '10011001'
vault.hashicorp.com/agent-run-as-user: '10011001'
vault.hashicorp.com/agent-run-as-same-user: 'true'
ingress:
# plain http - igeg.ingress.port.protocol = HTTP & igeg.ingress.tls.enabled = false
# tls - igeg.ingress.port.protocol = HTTPS & igeg.ingress.tls.enabled = true & igeg.ingress.tls.mode = SIMPLE
# mtls - igeg.ingress.port.protocol = HTTPS & igeg.ingress.tls.enabled = true & igeg.ingress.tls.mode = MUTUAL
dns: visl.example.host
port:
# HTTPS, HTTP
protocol: HTTPS
tls:
enabled: true
# MUTUAL, SIMPLE
mode: SIMPLE
fullnameOverride: ingressgateway-visl
jwt_policy: third-party-jwt
resources:
limits:
cpu: 300m
memory: 500Mi
requests:
cpu: 300m
memory: 500Mi
podAnnotations:
vault.hashicorp.com/secret-volume-path: '/visl-cert'
vault.hashicorp.com/agent-inject-template-ca.crt: |
{{- with secret "SYNAPSE/KV/VISL3" -}}
{{ .Data.data.rootcer }}
{{- end }}
vault.hashicorp.com/agent-inject-template-tls.crt: |
{{- with secret "SYNAPSE/KV/VISL3" -}}
{{ .Data.data.publishedcer }}
{{- end }}
vault.hashicorp.com/agent-inject-template-tls.key: |
{{- with secret "SYNAPSE/KV/VISL3" -}}
{{ .Data.data.mtlskey }}
{{- end }}
egress:
# prometheus configuration
# plain http - igeg.egress.metrics.protocol = HTTP & igeg.egress.metrics.tls.enabled = false
# tls - igeg.egress.metrics.protocol = HTTPS & igeg.egress.metrics.tls.enabled = true & igeg.egress.metrics.tls.mode = SIMPLE
# mtls - igeg.egress.metrics.protocol = HTTPS & igeg.egress.metrics.tls.enabled = true & igeg.egress.metrics.tls.mode = MUTUAL
metrics:
dns: prometheus-tls.metrics.svc.cluster.local
port: 9090
# port in Istio SE mesh
meshPort: 9080
# HTTPS, HTTP
protocol: HTTPS
tls:
enabled: true
# MUTUAL, SIMPLE
mode: MUTUAL
# kubeapi configuration
# tcp - igeg.egress.kubeapi.protocol = TCP & igeg.egress.kubeapi.ip = <kubeapi-ip>
# tls - igeg.egress.kubeapi.protocol = TLS
kubeapi:
dns: kubernetes.default.svc
port: 443
# port in Istio SE mesh
meshPort: 443
# TCP, TLS
protocol: TLS
# TCP
# ip: 10.96.0.1
fullnameOverride: egressgateway-visl
jwt_policy: third-party-jwt
resources:
limits:
cpu: 300m
memory: 500Mi
requests:
cpu: 300m
memory: 500Mi
podAnnotations:
vault.hashicorp.com/secret-volume-path: '/metrics-cert'
vault.hashicorp.com/agent-inject-template-ca.crt: |
{{- with secret "SYNAPSE/KV/VISL3" -}}
{{ index .Data.data "prom-ca-crt" }}
{{- end }}
vault.hashicorp.com/agent-inject-template-tls.crt: |
{{- with secret "SYNAPSE/KV/VISL3" -}}
{{ index .Data.data "prom-client-crt" }}
{{- end }}
vault.hashicorp.com/agent-inject-template-tls.key: |
{{- with secret "SYNAPSE/KV/VISL3" -}}
{{ index .Data.data "prom-client-key" }}
{{- end }}
Настройка values.yaml для панельной VISL (запускается в каждой контрольной панели):
config:
api:
namespaces:
label_selector:
enabled: true
value: istio.io/rev=istio-system
deployment:
# Проект в который устанавливается VISL
namespace: visl-namespace
# Пространства имен, которые будут подключены к централизованному VISL
accessible_namespaces:
enabled: false
value: [metrics, visl-namespace, new-project]
istio_component_namespaces:
# Istio SE namespace
istiod: istio-system
prometheus: metrics
istio_namespace: istio-system
kubernetes_config:
cache_enabled: true
cache_namespaces: [".*"]
Настройка values.yaml для централизованной VISL (запускается одна на весь кластер):
config:
api:
namespaces:
label_selector:
enabled: false
deployment:
namespace: visl-namespace
accessible_namespaces:
enabled: true
value: [metrics, visl-namespace, new-project]
istio_component_namespaces:
istiod: visl-namespace
prometheus: metrics
istio_namespace: visl-namespace
kubernetes_config:
cache_enabled: true
cache_namespaces:
- metrics
- visl-namespace
- new-project
Манифесты необходимые для корректной работы.
Для обеспечения авторизации в веб-интерфейсе VISL в случае использования OpenShift админам кластера необходимо создать конфигурацию OAuthClient:
apiVersion: oauth.openshift.io/v1
grantMethod: auto
kind: OAuthClient
metadata:
name: {{ oauth_client_name }}
redirectURIs:
# redirectURIs должен совпадать с тем URI, что выдается после создания Route
- {{ redirectURI }}
При аутентификации в веб-интерфейсе, компонент VISL выполняет запрос вида:
https://oauth.examplate.host/oauth/authorize?client_id={{ client_id_prefix}}-{{ visl_project_name }}&redirect_uri={{ redirectURI }}&response_type=token
Параметр |
Описание |
Значение |
|---|---|---|
Название OAuth клиента, используется в качестве client_id параметра при запросах |
- |
|
Это значение |
Например, visl |
|
Проект куда устанавливается VISL |
Например, example-namespace |
|
URI, который выдается после создания Route |
Например, visl.example.host |
|
Проект, подключаемый к VISL |
Например, example-member-namespace |
Имя манифеста OAuthClient приведенного выше должно соответствовать параметру client_id.
Если client_id не соответствует имени OAuthClient, то возникнет ошибка:
{
"error": "unauthorized_client",
"error_description": "The client is not authorized to request a token using this method."
}
Для корректной работы сервис аккаунту VISL требуется доступ к подключаемым проектам:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: kiali-se-central-ci03189811
namespace: {{ member_project_name }}
subjects:
- kind: ServiceAccount
name: visl
namespace: {{ visl_project_name }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kiali-se-central-cluster-role
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: kiali-se-central-cluster-role
rules:
- verbs:
- get
- list
- watch
apiGroups:
- ''
resources:
- pods
- services
- verbs:
- create
apiGroups:
- ''
resources:
- pods/portforward
- verbs:
- get
- list
- watch
apiGroups:
- apps
resources:
- deployments
- verbs:
- get
- list
- watch
apiGroups:
- config.istio.io
- networking.istio.io
- authentication.istio.io
- rbac.istio.io
- security.istio.io
resources:
- '*'
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: visl
namespace: {{ visl_project_name }}
subjects:
- kind: ServiceAccount
name: visl
namespace: {{ visl_project_name }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: visl
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: visl
namespace: {{ visl_project_name }}
rules:
- verbs:
- get
apiGroups:
- route.openshift.io
resources:
- routes
- verbs:
- get
apiGroups:
- ''
resources:
- configmaps
resourceNames:
- istio-basic
Если в качестве сервиса для сбора метрик используется компонент GATM, необходимо создать:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: vmagent-synapse-ci03189811
namespace: {{ member_project_name }}
subjects:
- kind: ServiceAccount
name: synapse-metrics-sa # имя сервис аккаунта компонента GATM
namespace: {{ visl_project_name }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: vmagent-service-discovery-synapse-cluster-role
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: vmagent-service-discovery-synapse-cluster-role
rules:
- verbs:
- get
- watch
- list
apiGroups:
- ''
resources:
- pods
В проекте, который должен быть доступен в VISL, необходимо создать NetworkPolicy:
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-from-{{ visl_project_name }}-namespace
namespace: {{ member_project_name }}
spec:
podSelector: {}
ingress:
- ports:
- protocol: TCP
port: 15090
from:
- podSelector:
matchLabels:
app: synapse-metrics-agent # метка
namespaceSelector:
matchLabels:
projectId: {{ visl_project_name }}
policyTypes:
- Ingress
В случае, если в качестве сервиса для сбора метрик используется Prometheus, установленный в контрольной панели через оператор Red Hat OpenShift Service Mesh, в блок
spec.containers.envдеплоймента VISL необходимо добавить:
- name: PROMETHEUS_PASSWORD
valueFrom:
secretKeyRef:
name: htpasswd
key: rawPassword
Если используется централизованная версия VISL, то в namespace, где она установлена нужно скопировать секрет с именем htpasswd из контрольной панели, где установлен Prometheus.
Для интеграции с компонентом MONA продукта Platform V Monitor необходимо в конфигурацию Service добавить следующие аннотации по пути
metadata.annotations:
metadata:
annotations:
prometheus.io.path: /actuator/prometheus # контроллер, с которого собирать метрики
prometheus.io.port: '8080' # порт, на котором доступен web server
prometheus.io.scrape: 'true' # включание сбора метрик с помощью MONA
Для интеграции с платформенными компонентами необходимо применить изменения в конфигурации Service Mesh (kind: IstioOperator), описанные в подразделе "Сценарии администрирования" раздела "Руководство по системному администрированию"
Автоматизированная установка VISL#
7.1 При необходимости и наличию компонента SMDL продукта SSM - установка может быть осуществлена с помощью Jenkins job SynapseInstaller из дистрибутива компонента SMDL. Для использования job необходимо ознакомиться с документацией к компоненту SMDL, в документе Руководство оператора, далее перейти в раздел «pipelines», и выбрать папку SynapseInstaller.
7.2 Для установки через консольного клиента платформы
Шаг |
Действия |
Описание |
|---|---|---|
Создайте директорию для установки. |
Создайте папку. Пример: visl-helm. |
|
Разархивируйте файлы. |
Распакуйте в созданную папку архив с конфигурационными артефактами |
|
Настройте стендозависимые параметры. |
Настройте стендозависимые параметры в файле |
|
Установите конфигурацию с клиентом Helm |
Выполните команду находясь в директории |
Данная команда в случае если VISL устанавливается в проект в первый раз произведет установку. Если установка уже производилась, изменения применятся и pod VISL перезапустится. |
Настройка интеграции#
Интеграция с компонентом POLM осуществлена в configmap VISL при помощи следующих параметров:
.spec.external_services.istio.component_status - компоненты Istio SE, за состоянием которых будет следить VISL;
.spec.external_services.istio.component_status.components - определенный компонент Istio SE, за состоянием которого будет следить VISL;
.spec.external_services.istio.component_status.components[*].app_label - Istio SE pod app label;
.spec.external_services.istio.component_status.components[*].is_core - Должен ли компонент считаться основным для вашего развертывания;
.spec.external_services.istio.component_status.enabled - определяет, будут ли статусы компонентов Istio SE отображаться в правой части шапки VISL;
.spec.external_services.istio.config_map_name - название config map istio SE control plane;
.spec.external_services.istio.istio_injection_annotation - название аннотации, которая автоматически внедряет sidecar Istio SE;
.spec.external_services.istio.istio_sidecar_annotation - аннотация в pod, которую использует Istio SE для идентификации sidecar;
.spec.external_services.istio.url_service_version - url по которому определяется версия Istio SE.
Интеграция c сервисом для сбора метрик осуществлена в configmap VISL при помощи следующих параметров:
.spec.external_services.prometheus.component_status - компоненты, за состоянием которых будет следить VISL;
.spec.external_services.prometheus.component_status.components - определенный компонент, за состоянием которого будет следить VISL;
.spec.external_services.prometheus.component_status.components[*].app_label - pod app label;
.spec.external_services.prometheus.component_status.components[*].is_core - должен ли компонент считаться основным для вашего развертывания;
.spec.external_services.prometheus.url - URL-адрес, используемый для запроса к серверу. Этот URL-адрес должен быть доступен из модуля VISL. Если пусто, по умолчанию предполагается, что сервис для сбора метрик находится в пространстве имен control plane Istio SE - например http://service-name.namespace.svc:9090.
Настройка логирования#
По умолчанию в логи pod выводятся сообщения до уровня INFO. При необходимости уровень логирования можно настроить путем изменения переменной LOG_LEVEL в блоке spec.containers.env деплоймента VISL. Например,
- name: LOG_LEVEL
value: '3'
Где '3' - уровень логирования.
Поддерживаются следующие уровни логирования:
'0' - Fatal level
'1' - Error level
'2' - Warning level
'3' - Info level
'4' - Debug level
'5' - Trace level
Настройка аудита#
В компоненте VISL журналы аудита представляют собой сообщения уровня INFO, выводятся в логи pod и включены по умолчанию.
Пример сообщения аудита:
2022-08-10T13:59:05Z INF AUDIT User [19998413] Msg [UPDATE on Namespace: synapse-dev-sandbox Type: virtualservices Name: ping-app-svc Patch: {"kind":"VirtualService",...
Если журналы аудита слишком подробные, вы можете отключить их, не снижая уровень логирования, изменив в ConfigMap VISL параметр audit_log на значение false:
spec:
server:
audit_log: false
Далее необходимо перезапустить pod VISL.
Обновление#
Для обновления версии VISL необходимо обновить Deployment. Для этого поменять версию docker-образа сервиса в разделе containers. Остальные артефакты являются конфигурационными и в случае обновления ставятся из релиза обновленной версии с предварительным удалением старой версии.
Удаление#
Шаг |
Действия |
Описание |
|---|---|---|
Подключение к проекту |
Выполнить пункт 2 из раздела "Установка" |
|
Удаление конфигурации с клиентом Helm |
Выполните команду находясь в директории |
Данная команда удалит артефакты из состава дистрибутива VISL. Артефакты не входящие в дистрибутив (секреты, роли итп) необходимо удалить отдельно |
Проверка работоспособности#
Проверка Deployment#
Зайти в deployment (после авторизации слева в Workloads выбирать раздел Deployments. В списке выбирать нужный deployment);
В deployment перейти во вкладку редактирования, нажав иконку пера сверху справа;
В массиве status:conditions проверить значения:
для type: Progressing должны быть установлены:
status: 'True';
reason: NewReplicaSetAvailable;
message: ReplicaSet "%Имя VISL%" has successfully progressed.
для type: Available должны быть установлены:
status: 'True';
reason: MinimumReplicasAvailable;
message: Deployment has minimum availability.
Проверка модулей Deployment#
Зайти в нужный проект;
Зайти в pod (после авторизации слева в Workloads выбрать раздел Pods. В списке выбрать нужный pod);
В pod посмотреть значения во вкладке Containers .
Корректным будет условие: Все контейнеры отмечены зеленым кружочком; В блоке Status у полей Ready и Started значения true.
Также сделать это можно через консоль.
Для этого достаточно выполнить команду:
Для Kubernetes:
kubectl --kubeconfig= <путь_к_kubeconfig> -n <имя_проекта> get pods
Для OpenShift:
oc -n <имя_проекта> get pods
Пример:
oc get pods -n visl-test-syn-dev
NAME READY STATUS RESTARTS AGE
egressgateway-visl-5cbd6fc99d-mrwhz 1/1 Running 0 5d23h
ingressgateway-visl-9cd654b87-fm7gw 1/1 Running 0 6d2h
visl-67cbcbc76-69q5h 2/2 Running 0 5d23h
В графеReady значение у pod VISL должно быть M/N, где M - количество успешно работающих контейнеров, а N - общее количество работающих контейнеров.
Если M = N, то все контейнеры успешно запустились.
Если M < N, то необходимо еще подождать, пока контейнеры запустятся, или посмотреть раздел «Часто встречающиеся проблемы и пути их устранения».
Вход в веб-интерфейсе компонента VISL#
Вход в веб-интерфейс осуществляется через Route, для это необходимо перейти по ссылке которая сформируется так: протокол (HTTPs) + host указанный в Route VISL.
Вход в веб-интерфейс VISL осуществляется через браузер. В данном случае браузер выступает в роли клиента и в режиме mTLS должен отправить сертификаты для аутентификации.
Если при входе в веб-интерфейс возникнет ошибка
ERR_BAD_SSL_CLIENT_AUTH_CERT, то необходимо удостовериться, что УЦ сертификата на вашем компьютере (который должен отправить браузер) есть в корневом сертификате загруженном в Secret Management System.Если ошибку устранить не удается можно для тестирования временно отключить режим mTLS. Для этого в файле
gateway.yamlизменить блок с tls на:tls: minProtocolVersion: TLSV1_2 mode: SIMPLE privateKey: /visk-cert/tls.key serverCertificate: /visl-cert/tls.crt
Проверка работоспособности компонента VISL, собранного на SberLinux в DropApp.#
а) Откройте веб-терминал DropApp
б) Выберите namespace с развернутым компонентом VISL, в соответствии с инструкцией описанной в документе Руководство по установке
в) Откройте раздел деплоймент и найдите деплоймент компонента VISL
г) Перейдите на вкладку pods и убедитесь, что все pods в статусе Running
д) Откройте запущенный pod компонента VISL
е) Перейдите на вкладку терминал и введите команду cat /etc/os-release - в выводе команды присутствует информация о том, что VISL работает на базовом образе SberLinux.
Чек-лист проверки работоспособности интеграций#
Проверка интеграций с POLM#
веб-интерфейсе VISL перейти на вкладку Diagnostic;
Если VISL не обнаружит Istiod (POLM), то в логах pod VISL будет сообщение об ошибке вида: 2022-08-10T14:51:21Z ERR error get synced configs dumps: unable to find any Istiod instances.
Проверка интеграций с сервисом для сбора метрик#
В веб-интерфейсе VISL перейти на вкладку Graph
Если сервисом для сбора метрик недоступен, на экране будет выведено следующее сообщение об ошибке:
Error loading Graph Cannot load the graph: Post "https://service-name.namespace.svc:9090/api/v1/query": dial tcp 172.00.00.000:9090: connect: connection refused.
Проверка интеграций с системой управления секретами#
Интеграция с SecMan. Успешный запуск VISL в OpenShift/DropApp(k8s). IGEG получает секреты из хранилища SecMan. Запуск основного модуля происходит только после получения секретов из хранилища. Эта проверка позволяет проверить интеграцию с SecMan.
Откат#
Откат продукта на одну из предыдущих версий (не позднее 3 по счету от текущей) происходит с помощью развертывания компонент из дистрибутива предыдущей версии, они затирают текущую инсталляцию. Откат продукта на предыдущую версию происходит с помощью развертывания YAML-файлов с предварительным удалением старой версии. Действия аналогичны обновлению, но в данном случае измененные YAML-файлы — это YAML-файлы предыдущей версии. Для отката на предыдущую версию при помощи helm выполните команду:
helm rollback <имя чарта, например, visl> 0
Часто встречающиеся проблемы и пути их устранения#
Проблема |
Причина |
Решения |
|---|---|---|
Ошибка при подключении к проекту |
Пользователю не предоставлен доступ в проект |
Запросите доступ к проекту |
Ошибка при загрузке артефактов |
У пользователя, под которым производится загрузка, отсутствуют необходимые права |
Проверьте и скорректируйте настройку прав доступа пользователю |
Ошибка при Pull docker-образа из репозитория |
Отсутствуют права на Pull образа из репозитория |
Запросите права |
Ошибка при Pull docker-образа из репозитория |
Недоступен репозиторий |
Зарегистрируйте обращение в поддержку инфраструктуры для восстановления доступа |
Ошибка при Pull docker-образа из репозитория |
Неверная ссылка на image в deployment VISL |
Проверьте ссылку, при необходимости скорректируйте деплоймент |
Ошибка при входе в веб-интерфейс ERR_CONNECTION_CLOSED |
Не создан OauthClient |
Создайте OAuthClient |
Ошибка при входе в веб-интерфейс |
Не созданы Role и RoleBinding visl |
Создать Role и RoleBinding visl описанные выше в разделе «Установка» пункт «Манифесты необходимые для корректной работы». |
Ошибка при входе в веб-интерфейс |
Не создан OauthClient, префикс в названии route не совпадает с префиксом в имени OauthClient |
Проверьте, что имя Route и OAuthClient имеют одинаковый префикс, а также host в Route совпадает с redirectURIs в OAuthClient |
При просмотре графа возникает ошибка |
У сервис аккаунта VISL не хватает прав |
создать OAuthClient |
При просмотре графа возникает ошибка |
Сервис для сбора метрик недоступен |
Проверить запущен ли pod сервиса для сбора метрик, если запущен то нужно проверить корректность адреса по которому к нему идут запросы (адрес указан в configMap VISL external_services.prometheus.url). |
Не отображается граф |
В проекте нет трафика |
Запустите трафик в проект, чтобы появились метрики на основе которых строится граф, через 30 секунд обновить страницу |
Не отображается граф |
Не настроен сбор метрик |
Сервис для сбора метрик должен собирать метрики с pods istio-proxy. Если в проекте есть трафик, но граф пустой, нужно в сервисе для сбора метрик проверить их наличие (метрика istio_requests_total) |
На графе не отображается ingress/egress |
В deployment ingress/egress в блоке с env отсутствуют переменные ISTIO_META_ |
В деплоймент ingress/egress в блок с env добавить |
Чек-лист валидации установки#
Проверки |
Действия |
|---|---|
Pod запущен |
После выполнения пунктов из раздела «Установка» перейдите в проект и выбрать раздел Pods |
Корректный статус pod |
Убедитесь, что pod с VISL имеет статус Running |
Корректная работа контейнеров pod |
Убедитесь, что в столбце Ready отображаются все запущенные контейнеры |
Отсутствие ошибок в логах |
Проверьте во вкладке Logs для каждого pod, отсутствие ошибок в логе контейнеров pod |
Настройка и проверка интеграции |
Настройки для проверки описана выше в разделах «Настройка интеграции», «Проверка интеграций с компонентом POLM», «Проверка интеграций с сервисом для сбора метрик» |
Проверка наличия и работоспособности Secret Management System |
Определить наличие в развертываемом компоненте IGEG контейнера с именем vault. |