Установка в кластер осуществляется путем установки helm chart в кластер при помощи утилиты helm (https://helm.sh/docs/intro/install/).
Ограничения:
В состав helm chart входя следующие зависимости, данные сервисы можно инсталлировать отдельно, указав строку подключения к ним в файле values.yml
Перед установкой необходимо перенести образы из полученного архива в приватный Container registry, с которого в последующим будет осуществляется загрузка образов в Kubernetes кластер.
Выполнение авторизации в приватном репозитории
Загрузка образов в приватный репозиторий
Проверка доступности Kubernetes кластера
https://artifacthub.io/packages/helm/bitnami/postgresql/11.9.13
https://artifacthub.io/packages/helm/bitnami/redis/16.13.2
https://artifacthub.io/packages/helm/bitnami/rabbitmq/11.16.2
Если планируется использовать уже развернутые решения, деплой sub-charts можно отключить следующими параметрами. В данном случаи в секции planrConfig.secrets, необходимо указать строки для подключения к уже развернутым сервисам.
В следующей таблице представлены все параметры, используемые при установке helm chart.
Таблица 6. Параметры, используемые при установке helm chart
Переменная | Описание | Значение по умолчанию |
1 | 2 | 3 |
Глобальные параметры | ||
global.imageRegistry | Глобальный реестр образов Docker | "" |
global.pullSecrets | Массив имен существующих серектов для загрузки образов | [] |
global.storageClass | Класс для создания Persistent Volume(s) | "" |
Конфигурация приложения | ||
planrConfig. annotations | Дополнительные аннотации к созданной Configmap | [] |
planrConfig.secrets.create | Создание секрета с строками подключения к внешним ресурсам | true |
planrConfig.secrets.existSecret | Имя существующего секрета с строками подключения к внешним ресурсам | "" |
planrConfig.secrets.DB_URL | Строка подключения к бд PostgreSql | postgresql://planr:planr@planr-postgresql-hl:5432/planr |
planrConfig.secrets.MB_URL | Строка подключения к брокеру сообщений RabbitMQ | amqp://planr:planr@planr-rabbitmq-headless:5672/planr |
planrConfig.secrets.REDIS_URL | Строка подключения к кешу данных Redis | redis://:redisplanr@planr-redis-headless:6379 |
planrConfig.env.LOCAL_AUTH_ENABLED | Включение локальной аутенфикации | true |
planrConfig.env.LDAP_AUTH_ENABLED | Включение аутентификации через Active Directory | false |
planrConfig.env.API_KEY_AUTH_ENABLED | Включение аутентификации при помощи api ключей | true |
planrConfig.env.SYSTEM_SITE | Hostname, на который настроен ingress | localhost |
planrConfig.env.FILE_TOKEN_SECRET | Рандомная строка, используемая для подписи файлов, выгружаемых для пользователя. | qxowf545VL7hivuDL2XF5TdQz8pAp95o |
planrConfig.env.FILE_TOKEN_EXPIRESIN | Время жизни токена | 24h |
planrConfig.env.JWT_SECRET | Строка для подписи JWT токена аутентификации. | HggHdtd467Gg67 |
Конфигурация Services | ||
Services.main.type | Тип созданного Service для доступа к основному приложению | ClusterIP |
Services.main.port | Порт сервиса основного приложения | 80 |
Services.admin.type | Тип созданного Service для доступа к консоли администрирования | ClusterIP |
Services.admin.port | Порт сервиса для доступа к консоли администрирования | 81 |
Services.api.type | Тип созданного Service для доступа api | ClusterIP |
Services.api.port | Порт сервиса для доступа к api | 82 |
Services.docs.type | Тип созданного Service для к документации | ClusterIP |
Services.docs.port | Порт сервиса для доступа документации | 83 |
Конфигурация ingress | ||
ingress. enabled.true | Создание Ingress | true |
ingress. hostname | Dns имя. | "" |
ingress. className | Класс используемого ingress controller | nginx |
ingress. paths.main.path | Путь к основному приложению | / |
ingress.paths.main.pathType | Тип пути для доступа к основному приложению | Prefix |
ingress. paths.admin.path | Путь к консоли администрирования | /admin |
ingress.paths.admin.pathType | Тип пути для доступа к консоли администрирования | Prefix |
ingress. paths.api.path | Путь к публичному api | /public-api |
ingress.paths.api.pathType | Тип пути для доступа к публичному api | Prefix |
ingress. paths.docs.path | Путь к документации | /docs |
ingress.paths.docs.pathType | Тип пути для доступа к документации | Prefix |
Ingress.annotations | Дополнительный аннотации для ingress controller | [] |
Ingress.tls | Включение защищённого соединения для Ingress | [] |
Конфигурация загрузки образов | ||
image.registry | Глобальный реестр Docker образов | "" |
image.imageTag | Тег образов | latest |
image.pullPolicy | Политика скачивания образов | always |
image.existPullSecrets | Существующий секрет для загрузки образов | [] |
image.create | Создание секрета для скачивания образов | false |
image.imageCredentials.registry | реестр docker образов | "" |
image.imageCredentials.username | Имя пользователя для доступа к реестру образов | "" |
image.imageCredentials.password | Пароль для доступа к реестру docker образов | "" |
image.imageCredentials.email | Email для доступа к реестру docker образов | "" |
Масштабирование приложения | ||
deployments.main.image | Имя образа для main deployment | main |
deployments.main.replicaCount | Количество реплик main | 1 |
deployments.admin.image | Имя образа для admin | admin |
deployments.admin.replicaCount | Количество реплик admin | 1 |
deployments.api.image | Имя образа для api | api |
deployments.api.replicaCount | Количество реплик api | 1 |
deployments.docs.image | Имя образа для docs | docs |
deployments.docs.replicaCount | Количество реплик docs | 1 |
deployments.workers.backup.image | Имя образа для backup-worker | worker_backup |
deployments.workers.backup. replicaCount | Количество реплик backup-worker | 1 |
deployments.workers.storage.image | Имя образа для storage-worker | worker_storage |
deployments.workers.storage. replicaCount | Количество реплик storage -worker | 1 |
deployments.workers.impex .image | Имя образа для impex-worker | worker_impex |
deployments.workers.impex. replicaCount | Количество реплик impex-worker | 6 |
deployments.workers.planr.image | Имя образа для planr-worker | worker_planr |
deployments.workers.planr. replicaCount | Количество реплик planr-worker | 6 |
deployments.workers.schedule.image | Имя образа для schedule-worker | worker_schedule |
deployments.workers.schedule. replicaCount | Количество реплик schedule-worker | 1 |
deployments.workers.aas.image | Имя образа для aas-worker | worker_aas |
deployments.workers.aas. replicaCount | Количество реплик aas-worker | 1 |
deployments.workers.notice.image | Имя образа для notice-worker | worker_notice |
deployments.workers.notice. replicaCount | Количество реплик notice-worker | 1 |
deployments.workers.mailer.image | Имя образа для mailer-worker | worker_mailer |
deployments.workers.mailer. replicaCount | Количество реплик mailer-worker | 1 |
deployments.workers.logger.image | Имя образа для logger-worker | worker_logger |
deployments.workers.logger. replicaCount | Количество реплик logger-worker | 1 |
deployments.workers.costr.image | Имя образа для costr-worker | worker_costr |
deployments.workers.costr. replicaCount | Количество реплик costr-worker | 1 |
Настройка хранилища Persistance volume | ||
planrPersistence.create | Создать хранилище при установке (Можно не создавать если будет использоваться s3 minio) | false |
planrPersistence.storageClass | Класс Persistent Volumes (если не указан используется класс по умолчанию) | "" |
planrPersistence.accessMode | Режим доступа к хранилищу | ReadWriteMany |
planrPersistence.size | Размер хранилища | 20Gi |
planrPersistence.annotations | Дополнительные анотации, которые необходимо добавить при создании хранилища. | [] |
planrPersistence.useExitsClaims | Использование предварительно подготовленного хранилища. | "" |
Автомаштабирование | ||
autoscaling.main.enabled | Включение автомаштабирования для main deployment | false |
autoscaling.main.minReplicas | Минимальное количество реплик при автомаштабировании main deployment | 1 |
autoscaling.main.maxReplicas | Максимальное количество реплик при автомаштабировании main deployment | 4 |
autoscaling.main. targetCPUUtilizationPercentage | Порог утилизации СPU для автомаштабирования main deployment | 80 |
autoscaling.main. targetMemoryUtilizationPercentage | Порог утилизации RAM для автомаштабирования main deployment | 80 |
autoscaling.admin.enabled | Включение автомаштабирования для admin deployment | false |
autoscaling.admin.minReplicas | Минимальное количество реплик при автомаштабировании admin deployment | 1 |
autoscaling.admin.maxReplicas | Максимальное количество реплик при автомаштабировании admin deployment | 4 |
autoscaling.admin. targetCPUUtilizationPercentage | Порог утилизации СPU для автомаштабирования admin deployment | 80 |
autoscaling.admin. targetMemoryUtilizationPercentage | Порог утилизации RAM для автомаштабирования admin deployment | 80 |
autoscaling.workers.enabled | Включение автомаштабирования для workers deployment | false |
autoscaling.workers.minReplicas | Минимальное количество реплик при автомаштабировании workers deployment | 1 |
autoscaling.workers.maxReplicas | Максимальное количество реплик при автомаштабировании workers deployment | 4 |
autoscaling.workers. targetCPUUtilizationPercentage | Порог утилизации СPU для автомаштабирования workers deployment | 80 |
autoscaling.workers. targetMemoryUtilizationPercentage | Порог утилизации RAM для автомаштабирования workers deployment | 80 |
Настройка потребления ресурсов | ||
resources.main | Дополнительные значения по ограничению ресурсов для main deployment | {} |
resources.admin | Дополнительные значения по ограничению ресурсов для admin deployment | {} |
resources.workers | Дополнительные значения по ограничению ресурсов для workers deployment | {} |
Настройка распределения по Нодам | ||
nodeSelector.main | настройка распределения main deployment по нодам кластера | {} |
nodeSelector.admin | настройка распределения admin deployment по нодам кластера | {} |
nodeSelector.workers | настройка распределения workers deployment по нодам кластера | {} |
tolerations.main | Дополнительная настройка tolerations для main deployment | [] |
tolerations.admin | Дополнительная настройка tolerations для admin deployment | [] |
tolerations.workers | Дополнительная настройка tolerations для workers deployment | [] |
affinity.main | Настройка affinity правил для main deployment | {} |
affinity.admin | Настройка affinity правил для admin deployment | {} |
affinity.workers | Настройка affinity правил для workers deployment | {} |
Сервисный аккаунт | ||
serviceAccount.create | Создание сервисного аккаунта | false |
serviceAccount.annotations | Дополнительные анотации при создании сервисного аккаунта | {} |
serviceAccount.name | Имя сервисного аккаунта | "" |
Настойка подов | ||
podAnnotations.main | Дополнительные аннотации при создании main deployment | {} |
podAnnotations.worker | Дополнительные аннотации при создании workers deployment | {} |