VK Registry logo
Помощь
Обновлена 19 августа 2026 г. в 11:59

Установка Security Manager в Kubernetes

Подготовка к установке Security Manager в Kubernetes

  1. Убедитесь, что у вас есть полное доменное имя (FQDN) для узла экземпляра Security Manager.

  2. Разверните экземпляр PostgreSQL версии 17 или выше.

    Подробнее — в официальной документации PostgreSQL.

  3. Создайте:

    • базу данных PostgreSQL для работы с Security Manager;
    • учетную запись PostgreSQL с доступом к базе данных.
  4. Создайте пространство имен в кластере Kubernetes:

    $ kubectl create ns <ПРОСТРАНСТВО_ИМЕН>

    Здесь <ПРОСТРАНСТВО_ИМЕН> — название пространства имен Security Manager. Пример: vk-security-manager.

  5. Создайте TLS-секрет:

    $ kubectl -n <ПРОСТРАНСТВО_ИМЕН> create secret tls <СЕКРЕТ> \  --cert=tls.crt \  --key=tls.key

    Здесь:

    • <ПРОСТРАНСТВО_ИМЕН> — название пространства имен Security Manager.
    • <СЕКРЕТ> — название секрета с TLS-сертификатом и ключом. Пример: tls-secret.
  6. Сгенерируйте ключ для шифрования конфиденциальной информации в базе данных:

    $ openssl rand -base64 32

    В терминале появится строка из 32 случайных байтов в кодировке Base64. Сохраните это значение для дальнейшей настройки.

  7. Сгенерируйте ключевую пару JWT:

    $ openssl genrsa -out rsakey.pem 2048  && \openssl rsa -in rsakey.pem -pubout > rsakey.pub

    В текущей директории появятся файлы:

    • rsakey.pem — приватный ключ JWT;
    • rsakey.pub — публичный ключ JWT.
  8. Подготовьте дистрибутив Security Manager, если это еще не сделано (подробнее — в разделе Подготовка дистрибутива Security Manager).

Настройка параметров Helm-чарта Security Manager

Задайте параметры в файле values-override.yaml Helm-чарта Security Manager:

global:  image:    registry: <ЛОКАЛЬНЫЙ_DOCKER_REGISTRY>  ingress:    enabled: true    hostname: "<FQDN_VK_SECURITY_MANAGER>"    annotations:        nginx.ingress.kubernetes.io/proxy-body-size: <ЛИМИТ_НА_РАЗМЕР_АРТЕФАКТОВ>    tls:      - hosts:        - "<FQDN_VK_SECURITY_MANAGER>"        secretName: <СЕКРЕТ> sm-service:  appConfig:    baseUrl: "https://<FQDN_VK_SECURITY_MANAGER>"    db:      database: <ИМЯ_БД>      host: <ХОСТ_БД>      password: <ПАРОЛЬ_БД>      port: "<ПОРТ_БД>"      username: <ЛОГИН_БД>  secrets:    dbEncryptionKeySecret:      dbEncryptionKey: "<КЛЮЧ_ШИФРОВАНИЯ_БД>"    jwtKeySecret:      jwtPrivateKey: |-        -----BEGIN PRIVATE KEY-----        MIIEvgI.....        ............        -----END PRIVATE KEY-----      jwtPublicKey: |-        -----BEGIN PUBLIC KEY-----        MIIBIjAN.....        .............        -----END PUBLIC KEY-----

Здесь:

  • <ЛОКАЛЬНЫЙ_DOCKER_REGISTRY> — локальный Docker Registry. Пример: registry.domain.local.

  • <FQDN_VK_SECURITY_MANAGER> — полное доменное имя для узла вашего экземпляра Security Manager. Пример: my-vk-security-manager.domain.local.

  • <ЛИМИТ_НА_РАЗМЕР_АРТЕФАКТОВ> — максимальный размер загружаемых артефактов. Пример: 1G.

  • <СЕКРЕТ> — название секрета с TLS-сертификатом и ключом, который вы создали на этапе подготовки. Пример: tls-secret.

  • <ИМЯ_БД> — имя базы данных PostgreSQL для работы с Security Manager.

  • <ХОСТ_БД> — имя хоста базы данных.

  • <ПОРТ_БД> — порт базы данных. Пример: 5432.

  • <ЛОГИН_БД> и <ПАРОЛЬ_БД> — учетные данные пользователя PostgreSQL с доступом к базе данных.

  • <КЛЮЧ_ШИФРОВАНИЯ_БД> — строка из 32 случайных байта в кодировке Base64, которую вы сгенерировали на этапе подготовки.

  • jwtPrivateKey и jwtPublicKey — параметры для указания ключевой пары JWT, которую вы сгенерировали на этапе подготовки.

    Скопируйте содержимое файлов rsakey.pem и rsakey.pub полностью и добавьте как есть: вместе с блоками BEGIN и END, а также переносами строк.

Установка Helm-чарта Security Manager

$ helm -n <ПРОСТРАНСТВО_ИМЕН> install <РЕЛИЗ_VK_SECURITY_MANAGER> oci://<ЛОКАЛЬНЫЙ_DOCKER_REGISTRY>/helm/vk-security-manager --version v26.2.0 -f values-override.yaml

Здесь:

  • <ПРОСТРАНСТВО_ИМЕН> — название пространства имен Security Manager.
  • <РЕЛИЗ_VK_SECURITY_MANAGER> — имя создаваемого релиза Security Manager.
  • <ЛОКАЛЬНЫЙ_DOCKER_REGISTRY> — ваш локальный Docker Registry. Пример: registry.domain.local.
Была ли статья полезна?