Руководство по установке#
В руководстве приведены инструкции по установке компонента Synapse Ansible Provider (SYAP).
Термины и определения#
Термин/аббревиатура |
Определение |
|---|---|
Платформа |
Платформа оркестрации приложений со средствами автоматизации и управления на основе политик, например, Kubernetes |
Kubernetes |
Платформа оркестрации приложений со средствами автоматизации и управления на основе политик |
Deployment / kind: Deployment |
Набор инструкций для запуска приложения в Kubernetes |
Под / kind: Pod |
Набор контейнеров внутри узла кластера Kubernetes |
Ansible |
Инструмент автоматизации подготовки и конфигурирования инфраструктуры |
CRD / kind: CustomResourcesDefinitions |
Общее описание конфигурации, которое будет храниться в рамках кластера |
Пользовательские конфигурации |
Конфигурации (CRD), которые реализуются в namespace командами, в формате |
SYAP |
Программный компонент Synapse Ansible Provider (код SYAP) |
SYOP |
Программный компонент Synapse Operator (SYOP) |
SSM |
Platform V Synapse Service Mesh — Программный продукт на базе Istio SE, обеспечивающий возможность создания сервисной сети поверх платформенной в Kubernetes |
URL |
Uniform Resource Locator — стандартизированный способ записи адреса ресурса в сети Интернет |
Host |
Сервер, на котором будет выполняться задача, описанная в AnsibleRun |
Ansible Host |
Под, в котором происходит запуск Ansible |
Ansible Playbook |
Набор инструкций для настройки инфраструктуры |
Ansible Collection |
Набор сгруппированных инструкций для настройки инфраструктуры |
Inventory |
Набор сгруппированной информации о Host, на которых будет выполняться Ansible Playbook |
CLI |
Command line interface — интерфейс командной строки, где выполняются команды с использованием терминала |
Сервисный прокси / SVPX / istio-proxy |
Компонент Сервисный прокси продукта «Platform V Synapse Service Mesh» |
Граничный прокси / IGEG / ingressgateway / egressgateway |
Компонент Граничный прокси продукта «Platform V Synapse Service Mesh» |
Системные требования#
Для выполнения установки программного компонента (SYAP) должны быть выполнены следующие условия:
Развернут и настроен кластер Kubernetes версии 1.19 или выше в соответствии с требованиями, предъявляемыми к Платформе;
В кластере создан проект («Namespace»), в котором установлена контрольная панель (POLM);
Кластер Kubernetes использует etcd в качестве основного хранилища всех данных, установка, обновление и откат данной базы данных предоставляет сама платформа Kubernetes;
Подключен и настроен компонент SMDL (в случае автоматизированной установки);
В проекте создана учетная запись с правами на загрузку артефактов;
В проекте имеются свободные ресурсы по
limitsиrequestsне менее, чем зарезервировано в конфигурационных артефактах;В проект добавлен секрет для загрузки Docker-образов из целевого Docker-репозитория;
В кластере создан проект (namespace), где будут реализован компонент SYAP;
В рамках реализованного проекта созданы необходимые роли (kind:Role/kind: ClusterRole) и привязки к ролям (kind: RoleBinding/kind: ClusterRoleBinding), в рамках ролевой модели компонента SYAP;
В рамках кластера реализованы необходимые ресурсы kind: CustomResourceDefinitions;
Для установки через консоль на рабочем месте должен быть установлен клиент Kubectl (CLI - command-line interface).
Для установки модуля компонента SYAP в среде контейнеризации Kubernetes – рекомендуется устанавливать приложения в рамках одного Pod. Приложения компонента не требуют дополнительной настройки окружения. Все настройки идут на уровне кластера в рамках среды контейнеризации.
Для возможности ручной установки, убедиться, что в рамках персонального компьютера установлен Helm версии не ниже 3.0.
Настройки безопасности окружения и перечень платформенных (дополнительных внешних) продуктов, используемых для установки, настройки и контроля в конечной информационной системе (далее — ИС), выбираются клиентом при разработке конечной ИС, исходя из характера обрабатываемой в ней информации и иных требований информационной безопасности (далее — ИБ), предъявляемых к ней. Рекомендуемые настройки безопасности окружения приведены в разделе «Подготовка окружения» данного документа.
Системное программное обеспечение#
Ниже представлены категории системного программного обеспечения (далее — ПО), которые обязательны или опциональны для установки, настройки, контроля и функционирования компонента. В каждой категории перечислены все поддерживаемые продукты сторонних правообладателей. Отдельно обозначены варианты, которые рекомендует АО «СберТех» (маркировка «Рекомендовано» в столбце «Продукт, функциональная совместимость с которым подтверждена»). Клиенту необходимо выбрать один из продуктов в каждой категории, исходя из условий использования конечной ИС.
Категория ПО |
Обязательность установки (да/нет) |
Наименование ПО |
Версия |
Продукт, функциональная совместимость с которым подтверждена |
Описание |
|---|---|---|---|---|---|
Операционная система |
Да |
Debian |
12 |
Рекомендовано |
ОС контейнеров для запуска модулей компонента |
Среда контейнеризации |
Да |
1.19 и выше |
Рекомендовано. Правообладателем АО «СберТех» также рекомендована среда контейнеризации – Platform V DropApp, см. раздел «Платформенные зависимости» |
Платформа контейнеризации для запуска компонентов сервиса |
|
Нет |
4.6 и выше |
Опционально |
Платформа контейнеризации для запуска компонентов сервиса |
||
Средство контейнеризации |
Да |
19.03.14 и выше |
Рекомендовано |
Инструмент для автоматизации работы с контейнерами |
|
Сервис централизованного хранения репозиториев артефактов (хранилище артефактов) |
Да |
3.42.0 |
Рекомендовано |
Интегрированная платформа для проксирования, хранения и управления зависимостями Java (Maven), образами, а также распространения ПО |
|
Нет |
3.43.0 |
Опционально |
|||
Нет |
3.43.0 |
Опционально |
|||
Сервис централизованного хранения репозиториев исходного кода |
Да |
15.7 и выше |
Рекомендовано |
||
Нет |
7.6.7 |
Опционально |
|||
Сервис интеграции и оркестрации микросервисов в облаке |
Нет |
1.6 и выше |
Опционально. Правообладателем АО «СберТех» также рекомендован сервис интеграции и оркестрации микросервисов в облаке, основанный на Istio – Platform V Synapse Service Mesh, см. раздел «Платформенные зависимости» |
||
Менеджер пакетов |
Нет |
3.8 и выше |
Опционально |
Инструмент для автоматической установки и настройки программного компонента на кластер |
|
Иное |
Да |
Golang |
1.22.5 и выше |
Рекомендовано |
Окружение для работы модулей компонента |
Иное |
Нет |
1.20.5 и выше |
Опционально |
Интерфейс командной строки для взаимодействия с кластером |
Примечание:
*
Да — категория ПО обязательна для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данной категории ПО)
Нет — категория ПО необязательна для функционирования сервиса (это означает, что сервис может выполнять свои основные функции без установки данной категории ПО)
**
Рекомендовано — рекомендованный правообладателем АО «СберТех» продукт
Опционально — альтернативный по отношению к рекомендованному правообладателем АО «СберТех» продукт
Платформенные зависимости#
Для настройки, контроля и функционирования компонента реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:
Для настройки, контроля и функционирования компонента реализована интеграция с программными продуктами, правообладателем которых является АО «СберТех»:
Наименование продукта |
Код |
Версия продукта |
Код и наименование компонента |
Обязательность установки (да/нет) |
Описание |
Аналог других производителей |
|---|---|---|---|---|---|---|
Platform V SberLinux OS Server |
SLO |
8.8 |
INST Операционная система |
Нет |
ОС контейнеров для запуска модулей компонента |
ОС Альт 8 СП |
Platform V DropApp |
K8S |
1.3 и выше |
K8SC K8S Core |
Нет |
Дистрибутив Kubernetes со встроенными механизмами мультитенантности и бессерверным исполнением |
Kubernetes, Red Hat OpenShift Container Platform |
Platform V Synapse Service Mesh |
SSM |
4.1 и выше |
POLM Управление политиками |
Нет |
Панель управления с открытым исходным кодом, служащая для взаимодействия, мониторинга и обеспечения безопасности контейнеров в среде контейнеризации Kubernetes |
Istio control plane 1.12 |
IGEG Граничный прокси |
Нет |
Сервис для обеспечения управляемого вызова интеграционных сервисов прикладной части |
Istio proxy 1.12 |
|||
SVPX Сервисный прокси |
Нет |
Сервисный прокси используется для маршрутизации и обеспечения безопасности трафика между приложениями |
||||
SMDL DevOps инструменты Service Mesh |
Нет |
Компонент для развития Jenkins заданий используемых для установки компонент Service Mesh, а так же их «эксплуатации» администраторами. Представляет из себя DevOps библиотеку для Jenkins на архитектуре MPL (Modular Pipeline Library). Она имеет четкую модульную структуру, многоуровневую вложенность, систему конфигурации конвейера, улучшенную обработку ошибок и многие другие полезные функции. Все это позволяет командам разработки и администраторам гибко настраивать DevOpsLib под свои нужды. В рамках DevOpsLib предоставляются помимо инструментов сборк/установки, инструменты упрощающее администрирование: создание/восстановление бэкапа, сбор логов, валидация дистрибутивов, вывод проекта из под нагрузки и другие. |
||||
Platform V Synapse App Mesh |
#AM |
1.0.0 и выше |
SYOP Synapse Operator |
Нет |
Компонент для установки компонентов в составе #AM |
***
Да — компонент или продукт необходим для функционирования сервиса (это означает, что сервис не может выполнять свои основные функции без установки данного компонента)
Нет — необязательный для функционирования сервиса компонент или продукт (это означает, что сервис может выполнять свои основные функции без установки данного компонента)
**** Рекомендуется установка программного продукта, правообладателем которого является АО «СберТех», при этом не исключена возможность (допускается правообладателем) использования аналога других производителей. Аналоги, в отношении которых продукт успешно прошел испытания и подтвердил свою работоспособность, указаны в разделе «Системное программное обеспечение».
Аппаратные требования#
Для установки компонента требуется следующая конфигурация аппаратного обеспечения:
Название модуля |
ПО среды функционирования |
Количество |
Список контейнеров |
CPU Request |
Memory Request |
CPU Limit |
Memory Limit |
Горизонтальное масштабирование |
|---|---|---|---|---|---|---|---|---|
provider-ansible |
Kubernetes/Platform V DropApp (опционально OpenShift NS) |
1 под |
package-runtime |
300m |
300Mi |
500m |
500Mi |
Нет |
service-proxy |
300m |
300Mi |
500m |
500Mi |
Нет |
Состав дистрибутива#
В рамках компонента SYAP предоставляется два архива.
Наименование артефакта в рамках поставки syap-bin-*.
Элемент дистрибутива |
Описание |
|---|---|
./docker/provider-controller/DockerFile |
dockerFile для сборки образа приложения Ansible provider |
./package/bh/provider |
binary для запуска Ansible Playbook, для настройки инфраструктуры |
./wheels/* |
зависимости для работы приложения Ansible provider |
./rpm/* |
зависимости для работы приложения Ansible provider |
Наименование артефакта в рамках поставки syap-cfg-*.
Элемент дистрибутива |
Описание |
|---|---|
./conf/helm/application/syap |
Базовые конфигурации по установке компонента SYAP |
./conf/helm/application/syap-base |
Конфигурации |
./conf/helm/application/providerconfig-secret |
Instance kind: ProviderConfig для работы SYAP с kind: Secret |
Выбор способа установки#
Автоматизированная (целевая) установка компонента с использованием Jenkins Job из дистрибутива компонента SMDL, SynapseInstaller (более подробно о настройке и запуске можно ознакомиться в документации компонента SMDL, «Руководство оператора»);
Ручная (опционально) установка компонента с использованием менеджера пакетов HELM.
Подготовка окружения#
В рамках подготовки окружения будет происходить сборка образа компонента и подстановка ссылки на полученный образ в конфигурации.
Пререквизиты:
Базовый образ для сборки Docker image загружен в Docker Registry.
Если базовый образ был предоставлен в виде архива, то загрузить его в ваш реестр образов можно следующими командами:
Загрузка образа из архива в локальный реестр образов:
docker load -i <архив_с_образом>Если требуется изменить tag загруженного из архива образа:
docker tag <старый_tag> <новый_tag>Загрузка образа в реестр образов:
docker push <tag>
В рамках предоставляемого дистрибутива реализованы все необходимые ресурсы для успешного функционирования компонента SYAP, кроме административных ресурсов кластера описанных в данном разделе.
Ресурсы в рамках ролевой модели (kind: Role/kind: ClusterRole/kind: RoleBinding/kind: ClusterRoleBinding/kind: ServiceAccount)
Ресурсы в рамках используемых конфигураций (kind: CustomResourceDefinitions)
Установку ресурсов выполнить через CLI Kubectl
Шаг |
Действия |
Описание |
|---|---|---|
Выполнить вход в Kubernetes |
Загрузите kubeconfig от вашего ServiceAccount. Заведите переменную |
— |
Перейти в Namespace (проект), где будет установлен компонент SYAP |
В консоли выполните команду: |
— |
Добавить необходимый перечень ресурсов |
В консоли выполнить, команды которые описаны в данном разделе ниже |
— |
Перед запуском заполните параметры, где будет установлен компонент SYAP, следующей командой:
SYAP_NAMESPACE=<имя namespace>
Установка CRD
Конфигурации присутствуют в рамках дистрибутива с конфигурациями развертывания (syap-cfg - ./conf/helm/application/syap-base).
Установка ClusterRole
Команда:
kubectl apply -n $SYAP_NAMESPACE -f - <<EOF
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: provider-ansible
rules:
- verbs:
- get
- list
- watch
- update
- patch
apiGroups:
- ansible.crossplane.io
resources:
- ansibleruns
- providerconfigs
- providerconfigusages
- verbs:
- update
apiGroups:
- ansible.crossplane.io
resources:
- ansibleruns/finalizers
- ansibleruns/status
- providerconfigs/finalizers
- providerconfigs/status
- verbs:
- create
- delete
apiGroups:
- ansible.crossplane.io
resources:
- providerconfigusages
- verbs:
- watch
- list
- get
- update
- patch
- create
apiGroups:
- ''
resources:
- secrets
- verbs:
- list
- get
- update
- create
- delete
apiGroups:
- ''
resources:
- services
- verbs:
- create
- patch
apiGroups:
- ''
resources:
- events
- verbs:
- list
- get
- update
- create
- delete
apiGroups:
- networking.istio.io
resources:
- virtualservices
- destinationrules
- serviceentries
- gateways
Установка ClusterRoleBinding
Команда:
kubectl apply -n $SYAP_NAMESPACE -f - <<EOF
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: provider-ansible
subjects:
- kind: ServiceAccount
name: {{ .Values.serviceaccountname }}
namespace: {{ .Release.Namespace }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Values.clusterrolename}}
EOF
Ручная подготовка окружения#
Шаг |
Действия |
Описание |
|---|---|---|
Создать директорию для установки |
На компьютере, с которого будет производиться установка, создайте каталог, например, |
— |
Разархивировать файлы |
Распакуйте в созданный каталог архив с бинарными артефактами компонента SYAP |
— |
Авторизуйтесь в Docker Registry |
Выполните команду, находясь в корне распакованного архива: |
$registry — это host Docker реестра. Необходимо будет ввести логин с паролем для авторизации |
Соберите Docker образ для установи приложения |
Выполните команду, находясь в корне распакованного архива: |
$registry_tag — полный путь где будет реализован образ, $version — версия образа, $base_image_url - ссылка на базовый образ. Пример заполненной команды: |
Загрузите полученный Docker образ в Registry |
Выполните команду, находясь в корне распакованного архива: |
— |
Сохраните полученный sha256 образа |
При выполнении шага «Загрузите полученный Docker образ в Registry» в терминале будет информация о sha256 загруженного образа, пример вывода терминала |
Сохраните указанное значение в переменную $sha256 |
Автоматизированная подготовка окружения#
Для сборки образа рекомендуем использовать инструмент автоматической сборки образа, компонента SMDL, ClientUnpacker (более подробно о настройке и запуске можно ознакомиться в документации компонента SMDL, «Руководство оператора»), результатом исполнения будет собранный образ приложений.
Для компонента SYAP необходимо провести дополнительные шаги для корректного формирования конфигураций по установке.
При первом запуске Jenkins Job ClientUnpacker необходимо проверить файл JSON teamProducts.json (указанный файл
формируется при установке SMDL, полный путь к файлу ${имя репозитория}/resources/custom/additionalFiles/teamProducts.json):
{
"name": "Synapse Ansible Provider",
"code": "SYAP",
"parts": [
{
"docker": [
{
"baseImageLink": "base_image",
"version": "$VERSION",
"deploymentUnit": "provider-controller"
}
],
"artifactId": "syap-bin"
},
{
"artifactId": "syap-cfg",
"imageLinkMapping": [
{
"regex": "\\{\\{ \\.Values\\.registry \\}\\}\\{\\{ \\.Values\\.registry_path \\}\\}provider-controller@sha256:(?<hash>\\w+)"
}
]
}
],
"to": {
"ci": "ci"
}
}
Запустить инструмент автоматической сборки продукта SSM, компонента SMDL, ClientUnpacker (более подробно о настройке и запуске можно ознакомиться в документации компонента SMDL, «Руководство оператора»), результатом исполнения будет собранные артефакты для установки приложения (на email сотрудника, кто запустил Jenkins Job, придет таблица со ссылками на артефакты);
Провести проверку корректной подстановки образов в конфигурации. Для этого необходимо загрузить артефакты, которые относятся к компоненту SYAP по ссылкам из таблицы.
### в рамках приложения Ansible provider располагаются общие конфигурации по установке
### путь к конфигурационному файлу «./conf/helm/application/syap/templates/deployment.yaml» (артефакт «syap-cfg-*»)
### провески поиск по ключу «image»
- image: your.registry/*/provider-controller@sha256:****** # пример корректной подстановки образа для компонента ansible provider
При возникновении сложностей с подстановкой образа, допускается произвести ручное добавление корректных образов приложения, которые формируются после запуска Jenkins Job ClientUnpacker.
Установка#
Перед началом установки убедитесь, что выполнена подготовка окружения. Убедиться что в рамках персонального компьютера установлен Helm версии не ниже 3.0.
Ручная установка сервиса#
Загрузить артефакт компонента SYAP с конфигурациями для установки (
syap-cfg-*);При необходимости провести корректировку конфигураций, располагаемых в каталоге
./conf/helm/application/syap/templates/*(например провести подстановку image приложения);Перейти в рамках терминала в каталог
./conf/helm/;Провести авторизацию через терминал в кластер, где планируется установка компонента SYAP (пример для Openshift
oc login --token=$ТОКЕН --server=$АДРЕС_КЛАСТЕРА);Пройти в Namespace (проект), где планируется установка компонента SYAP (пример для Openshift
oc project provider-ansible);Провести заполнение файла
./conf/helm/application/syap/values.yaml(описание параметров указана в указанном документе, раздел «Автоматическая установка сервиса»);Провести установку Helm Chart syap-base -
helm install syap-base;Провести установку компонента SYAP -
helm install syap --values values.yaml.
Автоматическая установка сервиса#
SYOP#
Для установки SYAP необходимо ознакомиться с соответствующей инструкцией в документации SYOP (документ «Руководство по системному администрированию», раздел «Руководство по установке компонента SYAP»)
SMDL#
Достаточно использовать конфигурации развертывания из дистрибутива приложения syap-cfg-*.
Заполнить стендозависимые параметры для установки компонента SYAP, пример:
### Необходимо реализовать файл values.yaml
### Расположение файла в рамках git ветки job SynapseInstaller (более подробно о настройке и запуске можно ознакомиться в документации компонента SMDL, «Руководство оператора»)
### Для компонента SYAP - synapse-config-dev-gen/${{имя кластера для установки/имя проекта для установки}} или {имя проекта для установки}}/package/conf/helm/application/syap/values.yaml
values.yaml
clusterrolename: provider-ansible # наименование kind:ClusterRole
clusterrolebinding: provider-ansible # наименование kind:ClusterRoleBinding
serviceaccountname: provider-ansible-service-account # наименование kind:ServiceAccount
registryHost: host # ссылка на Host registry
registry_path: pathToImage # путь до образа
seccompProfile: false # флаг установки параметра seccompProfile в секции securityContext у «kind: Deployment» (указанный параметр поддерживается в Kubernetes версии 1.25 и выше)
pullsecretname: default # наименование **kind: Secret** для pull образов
projectedKubeAPI: false # флаг монтирования токена для работы с KubeAPI, если стоит значение false, то токен будет примонитирован автоматически, если true то токен будет примонтирован в рамках Deployment
affinity: true # флаг установки podAntiAffinity с конкретизацией метки (label) при установке на Node
enabledPriorityClassName: false # флаг установки параметра PriorityClassName в рамках «kind: Deployment»
priorityClassName: system-cluster-critical # значение параметра PriorityClassName в рамках «kind: Deployment»
package: # блок настроек для контейнейров
controller:
replicas: 1 # количество реплик
probes:
liveness: # параметры livenessProbe контейнера SYAP
initialDelaySeconds: 5
timeoutSeconds: 5
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
readiness: # параметры readinessProbe контейнера SYAP
initialDelaySeconds: 5
timeoutSeconds: 1
periodSeconds: 30
successThreshold: 1
failureThreshold: 3
resources:
limits:
cpu: 300m # ресурсы limits/cpu приложения SYAP
memory: 300Mi # ресурсы limits/memory приложения SYAP
requests:
cpu: 200m # ресурсы requests/cpu приложения SYAP
memory: 200Mi # ресурсы requests/memory приложения SYAP
strategy:
rollingParams:
maxSurge: 25% # установка параметра maxSurge в рамках «kind: Deployment»
maxUnavailable: 25% # установка параметра maxUnavailable в рамках «kind: Deployment»
svpx:
resources:
limits:
cpu: 300m # ресурсы limits/cpu приложения SVPX в Pod компонента SYAP
memory: 300Mi # ресурсы limits/memory приложения SVPX в Pod компонента SYAP
requests:
cpu: 300m # ресурсы requests/cpu приложения SVPX в Pod компонента SYAP
memory: 300Mi # ресурсы requests/memory приложения SVPX в Pod компонента SYAP
egress:
replicas: 1 # количество реплик IGEG (egressgateway)
certs: # монтируемые сертификаты
- name: syap-egress # имя монтируемого volume
secretName: syap-egress # наименование секрета
mountPath: sberworks-ca.crt # наименование поля в секрете и наименование файла, в которое сохранить содержимое
probes:
readiness: # параметры readinessProbe контейнера IGEG (egressgateway)
failureThreshold: 30
initialDelaySeconds: 5
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 1
resources:
limits:
cpu: 300m # ресурсы limits/cpu приложения IGEG (egressgateway)
memory: 500Mi # ресурсы limits/memory приложения IGEG (egressgateway)
requests:
cpu: 300m # ресурсы requests/cpu приложения IGEG (egressgateway)
memory: 500Mi # ресурсы requests/memory приложения IGEG (egressgateway)
ansible_dir_limit: 500Mi # размер для директории /ansibleDir
ansibledir_dir_limit: 500Mi # размер для директории /.ansible
syap_config:
debug: false # флаг включения режима логирования уровня 'debug' при старте приложения
syncTime: 1h # интервал полной обработки всех crd SYAP
ansibleProcessTimeout: 20m # время отводимое под Ansible процесс. При его истечении срабатывает sigterm
istioCreateTimeout: 40 # количество секунд ожидания получения доступа к внешнему серверу после создания Istio конфигураций
leaderElection: false # параметр leaderElection syap controller
maxReconcileRate: 1 # параметр максимального количества потоков обработки конфигураций syap
artifactsHistoryLimit: 10 # параметр количества хранимых артефактов после работы ansible
metricsAddress: ':8080' # параметр порта для метрик
apiVersionIstio: 'networking.istio.io/v1beta1' # apiVersion конфигураций Istio
pollInterval: 1m # время между опросами индивидуального ресурса SYAP
igeg:
enable: true # включение интеграции syap с Istio/POLM
kubeEgressRouting: TLS # реализация конфигураций Istio (TLS перехват трафика в рамках tls, TCP перехват трафика по tcp)
kubeAPIIP: '*.*.*.*' # IP-адрес сервиса KubeAPI (kubernetes.default.svc.cluster.local)
kubePort: 443 # Port сервиса KubeAPI (kubernetes.default.svc.cluster.local), параметр указывается при установке в Kubernetes кластер (k8s: true)
kubeAPIResolution: STATIC # resolution в рамках реализации конфигурации «kind: ServiceEntry» по host Kube API server
istioControlPlane: sb-controlplane # наименование namespace контрольной панели, к которой подключен namespace компонента SYAP
serviceIstiod: istiod-basic # наименование сервиса контрольной панели, компонента «istiod»
image: # ссылка на актуальный образ приложения IGEG
add_credential_mount: false
k8s: true # Флаг, указывающий устанавливается ли SYAP в систему оркестрации k8s
hash: sha256:bd3244ea531185a7f64a1be6bdc5a917998c2d7eceecf313f9d946368b110865 # sha256 образа приложения SYAP
Запустить Jenkins Job, компонент SMDL, SynapseInstaller (более подробно о настройке и запуске можно ознакомиться в документации компонента SMDL, «Руководство оператора»)
Обновление#
Перед обновлением компоненты SYAP не требуется делать бэкап etcd. Конфигурации kind: AnsibleRun/kind: ProviderConfig останутся в кластере.
Для обновления SYAP в проекте требуется:
Загрузить артефакт компонента SYAP с конфигурациями для установки (
syap-cfg-*);При необходимости провести корректировку конфигураций, располагаемых в каталоге
./conf/helm/application/syap/templates/*(например провести подстановку image приложения);Перейти в рамках терминала в каталог
./conf/helm/application;Провести авторизацию через терминал в кластер, где планируется установка компонента SYAP (пример для Openshift
oc login --token=$ТОКЕН --server=$АДРЕС_КЛАСТЕРА);Пройти в Namespace (проект), где планируется установка компонента SYAP (пример для Openshift
oc project provider-ansible);Провести заполнение файла
./conf/helm/application/syap/values.yaml(описание параметров указана в указанном документе, раздел «Автоматическая установка сервиса»);Провести обновление syap-base посредством команды обновление Helm Chart
helm upgrade syap-base --values values.yaml.Провести обновление SYAP посредством команды обновления Helm Chart
helm upgrade syap --values values.yaml.
Удаление#
Подключиться к проекту#
Через CLI Kubectl
Шаг |
Действия |
Описание |
|---|---|---|
Вход в Kubernetes |
Загрузите kubeconfig от вашего ServiceAccount. Заведите переменную |
— |
Переход в нужный Namespace (проект) |
Введите команду: |
— |
Остановить компонент#
Через CLI Kubectl
Шаг |
Действия |
Описание |
|---|---|---|
Остановка приложения |
В консоли выполнить команду: |
— |
Удалить артефакты действующей версии#
Через CLI Kubectl
Шаг |
Действия |
Описание |
|---|---|---|
Удалить Deployment |
В консоли выполнить команду: |
— |
Удалить все зависимые ресурсы из раздела «Подготовка окружения» |
В консоли выполнить команду для каждого ресурса: |
— |
Проверка работоспособности#
SYAP#
Шаг |
Действия |
Описание |
|---|---|---|
Получение имени пода |
В консоли выполнить команду |
Выбрать наименование Pod с наименованием «provider-ansible-****», указанное наименование пригодится на следующем шаге (<имя Pod>) |
Проверить работоспособность |
В консоли выполнить команду: |
— |
Также проверить отсутствие ошибок в рамках логов приложения (документ «Руководство по системному администрированию», раздел «Выгрузка системных логов»).
Проверка работоспособности всех интеграций производится на стороне приложений, с которыми приложения SYAP взаимодействуют, подробнее описание можно найти в документации таких приложений (IGEG, SVPX, DropAPP, POLM).
При установке SYAP посредством компонентов SMDL, SYOP фактом, подтверждающим работоспособность данных компонентов, будет являться успешная установка всех необходимых пользователю приложений в рамках SYAP.
Откат#
Перед откатом компоненты SYAP на предыдущую версию не требуется делать бэкап etcd. Конфигурации kind: AnsibleRun/kind: ProviderConfig останутся в кластере.
Остановить компонент#
Через CLI Kubectl
Шаг |
Действия |
Описание |
|---|---|---|
Остановка приложения |
В консоли выполнить команду: |
— |
Удалить артефакты действующей версии#
Через CLI Kubectl
Шаг |
Действия |
Описание |
|---|---|---|
Сохранение Deployment |
В консоли выполнить команду: |
— |
Удаление Deployment |
В консоли выполнить команду: |
— |
Загрузить сохраненные артефакты#
Через CLI Kubectl
Шаг |
Действия |
Описание |
|---|---|---|
Загрузить конфигурации в рамках компонента |
В консоли выполнить команду: |
Переменная $FILE_NAME в рамках добавления необходимых конфигураций компонента (kind: Deployment) |
Запустить восстановленную версию компонента#
Через CLI Kubectl
Шаг |
Действия |
Описание |
|---|---|---|
Запустить восстановленную версию компонента |
В консоли выполнить команду: |
$N — необходимое количество kind: Pod, рекомендованное значение 1 |
Часто встречающиеся проблемы и пути их устранения#
Проблема |
Причина |
Решение |
|---|---|---|
Ошибка при подключении к проекту |
Пользователю не предоставлен доступ в проект. |
Запросить доступ к проекту у администратора кластера |
Ошибка при загрузке артефактов |
У пользователя, под которым производится загрузка, отсутствуют необходимые права |
Запросить доступ к проекту у администратора кластера |
Ошибка при Pull docker-образа из репозитория |
Отсутствуют права на Pull образа из репозитория. |
Запросить права у администратора Registry. |
Чек-лист валидации установки#
Проверка |
Действия |
Результат |
|---|---|---|
Все артефакты загружены в проект |
По списку артефактов найти их в Namespace (проект) Kubernetes |
— |
Все поды запущены |
Найти Deployment, перейти на вкладку Pods, проверить, что статус всех подов — Running |
— |
Отсутствие ошибок в логах контейнеров |
Для пода SYAP проверить на вкладке Logs, что в логах контейнеров пода отсутствуют ошибки |
— |