Console#

Console - это веб-интерфейс для управления кластерами DropApp, который предоставляет удобный GUI для работы с ресурсами кластера, включая создание pod и развертывание приложений.

Основные задачи и возможности
  • Визуальное управление ресурсами кластера: Позволяет просматривать и управлять pod, service, deployment и другими объектами Kubernetes через браузерный интерфейс.

  • Интеграция с метриками и мониторингом: Предоставляет возможность отслеживать состояние кластера, нагрузку на узлы, использование ресурсов и интегрированных оповещений.

  • Упрощенное развертывание приложений: Поддерживает загрузку манифестов YAML, создание ресурсов через форму и запуск приложений без использования командной строки.

  • Работа с политиками безопасности и доступом: Позволяет управлять RBAC, сервисными аккаунтами, ролями и привязками.

  • Поддержка дополнительных плагинов и сервисов: Обеспечивает возможность интеграции с Operator Lifecycle Manager (OLM), системами биллинга и другими расширениями.

Примечание

Console является единственным инструментом Ui и устанавливается по умолчанию в процессе установки всего кластера DropApp. Также, по умолчанию Console интегрирована с Dex.

В случае высокодоступного кластера (3 control plane узла), Console автоматически имеет 2 реплики.

Конфигурация values#

Значения можно переопределить через редактирование инструмента с именем console и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».

console - основные параметры консоли DropApp#

Параметр

Описание

Значение по умолчанию

console.replicas

Количество реплик Console

1

console.baseUrl

Базовый URL для доступа к Console, формируется из глобального домена

'https://console.{{ include "ingress.domain" . }}'

console.docs

URL документации Console

'https://client.sbertech.ru/docs/public/K8S/'

console.k8sApiEndpoint

Явно заданный эндпоинт API для Console при необходимости переопределения

''

console.tls.enabled

Включение TLS для Console

true

console.oidc.enabled

Включение OIDC-аутентификации

true

console.oidc.inactivityTimeout

Тайм-аут неактивности пользовательской сессии в секундах

1800

console.oidc.issuerUrl

URL провайдера OIDC для аутентификации

'https://auth.{{ include "ingress.domain" . }}'

console.oidc.caFile

Путь к файлу сертификата CA для OIDC

"/etc/ingress-tls/tls.crt"

console.oidc.clientId

Идентификатор клиента для OIDC-аутентификации

dapp

console.oidc.clientSecret

Секрет клиента для OIDC-аутентификации в кодировке base64

<Secret>

console.oidc.dex.host

Хост сервера аутентификации Dex

'https://auth.{{ include "ingress.domain" . }}'

console.oidc.tlsSecretName

Имя Secret с TLS-сертификатом для Dex

ingress-tls

console.inCluster.enabled

Включение режима работы внутри кластера

true

console.offCluster.enabled

Включение режима работы вне кластера

false

console.offCluster.host

Хост API-сервера для внешнего подключения

https://kubernetes.default.svc

console.offCluster.port

Порт API-сервера для внешнего подключения

6443

console.alerting.enabled

Включение интеграции с системой оповещений

true

console.alerting.alertmanager

URL Alertmanager для получения оповещений

'https://alertmanager.{{ include "ingress.domain" . }}'

console.monitoring.enabled

Включение интеграции с системой мониторинга

false

console.monitoring.metrics

URL системы метрик Prometheus для получения данных мониторинга

'https://metrics.{{ include "ingress.domain" . }}/select/0/prometheus'

image - параметры образа контейнера#

Параметр

Описание

Значение по умолчанию

image.repository

Полный путь к репозиторию Docker-образа Console

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-ui/dapp-console'

image.pullPolicy

Политика загрузки образа.
Возможные значения: Always, IfNotPresent, Never. Значение IfNotPresent означает загрузку при отсутствии локального образа

IfNotPresent

image.tag

Тег Docker-образа для развертывания

4.12.0

imagePullSecrets - Secret для загрузки образов#

Параметр

Описание

Значение по умолчанию

imagePullSecrets

Список Secret для аутентификации в приватных реестрах образов

[]

nameOverride - переопределение имен ресурсов#

Параметр

Описание

Значение по умолчанию

nameOverride

Переопределение базового имени ресурсов чарта

""

fullnameOverride - переопределение полного имени ресурсов чарта#

Параметр

Описание

Значение по умолчанию

fullnameOverride

Полное переопределение имени ресурсов чарта

""

annotations - аннотации для ресурсов#

Параметр

Описание

Значение по умолчанию

annotations

Дополнительные аннотации для применения к ресурсам чарта

{}

labels - метки для ресурсов#

Параметр

Описание

Значение по умолчанию

labels

Дополнительные метки для применения к ресурсам чарта

{}

podLabels - метки для pod#

Параметр

Описание

Значение по умолчанию

podLabels

Дополнительные метки для применения к pod

{}

podAnnotations - аннотации для pod#

Параметр

Описание

Значение по умолчанию

podAnnotations

Дополнительные аннотации для применения к pod

{}

podSecurityContext - контекст безопасности pod#

Параметр

Описание

Значение по умолчанию

podSecurityContext.enabled

Включение настроек контекста безопасности pod

true

podSecurityContext.runAsUser

Идентификатор пользователя для запуска контейнера в pod

1001

securityContext - параметры контекста безопасности контейнера#

Параметр

Описание

Значение по умолчанию

securityContext.enabled

Включение настроек контекста безопасности контейнера

true

securityContext.capabilities.drop

Список capabilities для удаления

- ALL

securityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

securityContext.allowPrivilegeEscalation

Разрешение на эскалацию привилегий контейнера

false

securityContext.runAsNonRoot

Запуск контейнера от имени пользователя без административных полномочий

true

securityContext.runAsUser

Идентификатор пользователя для запуска контейнера

1001

service - параметры Service#

Параметр

Описание

Значение по умолчанию

service.type

Тип Service.
Возможные значения: ClusterIP, NodePort, LoadBalancer

ClusterIP

service.port.http

Порт для HTTP-трафика

9000

service.port.https

Порт для HTTPS-трафика

9443

ingress - параметры Ingress#

Параметр

Описание

Значение по умолчанию

ingress.enabled

Включение создания ресурса Ingress для внешнего доступа

true

ingress.className

Класс ingress-контроллера для обработки правил

"nginx"

ingress.annotations

Дополнительные аннотации для ресурса Ingress.
Пример конфигурации:

kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"

{}

ingress.hosts

Список хостов и маршрутов, публикуемых через Ingress

- host: 'console.{{ include "ingress.domain" . }}'
  paths:
    - backend:
        service:
          name: console
      path: /
      pathType: Prefix

ingress.tls

Список TLS-настроек для Ingress, включая Secret и хост

- secretName: ingress-tls
  hosts:
    - 'console.{{ include "ingress.domain" . }}'

extraEnv - дополнительные переменные окружения#

Параметр

Описание

Значение по умолчанию

extraEnv

Дополнительные переменные окружения для контейнера Console

{}

volumes - настройка Volume#

Параметр

Описание

Значение по умолчанию

volumes

Список Volume, подключаемых к Console

- name: ingress-tls
  config:
    secret:
      defaultMode: 420
      secretName: ingress-tls

volumeMounts - монтирование Volume#

Параметр

Описание

Значение по умолчанию

volumeMounts

Список точек монтирования Volume в контейнере Console

- mountPath: /etc/ingress-tls
  name: ingress-tls
  readOnly: true

resources - ресурсы контейнера#

Параметр

Описание

Значение по умолчанию

resources.requests.cpu

Минимальное количество CPU для контейнера

10m

resources.requests.memory

Минимальное количество памяти для контейнера

100Mi

autoscaling - параметры автоматического масштабирования#

Параметр

Описание

Значение по умолчанию

autoscaling.enabled

Включение горизонтального автомасштабирования pod

false

autoscaling.minReplicas

Минимальное количество реплик при автомасштабировании

1

autoscaling.maxReplicas

Максимальное количество реплик при автомасштабировании

100

autoscaling.targetCPUUtilizationPercentage

Целевой процент использования CPU для масштабирования.
Пример конфигурации:

targetMemoryUtilizationPercentage: 80

80

nodeSelector - выбор узлов для размещения#

Параметр

Описание

Значение по умолчанию

nodeSelector

Селектор узлов для размещения pod на определенных узлах кластера

{}

tolerations - настройка tolerations для узлов с ограничениями#

Параметр

Описание

Значение по умолчанию

tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

affinity - настройка правил привязки pod#

Параметр

Описание

Значение по умолчанию

affinity

Правила привязки pod к узлам

{}

sidecars - дополнительные sidecar-контейнеры#

Параметр

Описание

Значение по умолчанию

sidecars

Список дополнительных sidecar-контейнеров в pod

[]

hostAliases - псевдонимы хостов#

Параметр

Описание

Значение по умолчанию

hostAliases

Список псевдонимов хостов для добавления в /etc/hosts контейнера.
Пример конфигурации:

- ip: "127.0.0.1"
  hostnames:
    - "kubernetes.default.svc"

[]