trust-manager#

trust-manager - инструмент для управления пакетами доверенных X.509-сертификатов (trust bundles) в кластерах.

trust-manager автоматизирует распространение и обновление доверенных сертификатов, которые используются для валидации сертификатов при TLS-соединении и в других сценариях. Он избавляет администраторов от необходимости пересобирать контейнеры для обновления доверенных хранилищ.

Основные функции:

  • Автоматическое управление пакетами сертификатов, осуществляющее сборку из различных источников через пользовательский ресурс Bundle (CRD) и распространение итогового пакета в целевые пространства имен через ConfigMap или Secret.

  • Работа с несколькими форматами: PEM, JKS и PKCS#12, при этом пароли можно настраивать по необходимости.

  • Возможность получать CA‑сертификаты из Issuer и ClusterIssuer Сert-manager, сохраняющая возможность полностью автономной работы без привязки к Сert-manager.

  • Механизм динамического обновления, гарантирующий автоматическую синхронизацию данных при любых изменениях в источниках, не требуя пересборки контейнеров.

  • Гибкая адресация, позволяющая выбирать источники сертификатов как по имени, так и посредством переключателя меток (selector.matchLabels). Целевые пространства имен определяются аналогично - по соответствующим меткам.

  • Безопасное обновление CA предусматривает контролируемую ротацию корневых сертификатов. Процесс выполняется поэтапно, при этом на переходном этапе кластер одновременно доверяет как старому, так и новому корневому сертификату.

Установка trust-manager#

  1. Установите trust-manager с помощью Helm:

    helm upgrade trust-manager <repository>/trust-manager \
      --install \
      --namespace cert-manager \
      --wait
    

    Примечание

    Для совместной работы с Cert-manager установите trust-manager в пространство имен cert-manager или иное, где уже развернут Cert-manager.

  2. Проверьте все pod в пространстве имен cert-manager:

    kubectl get pods -n cert-manager
    

    Примечание

    Если trust-manager установлен в иное пространство имен, проверьте pod в соответствующем пространстве имен.

    Пример вывода:

    NAME                                       READY   STATUS
    trust-manager-7d9f2b8c4e-3a1b2             1/1     Running
    cert-manager-5c6866597-zw7kh               1/1     Running
    cert-manager-cainjector-577f6d9fd7-tr77l   1/1     Running
    cert-manager-webhook-787858fcdb-nlzsq      1/1     Running
    

    Или проверьте только pod trust-manager:

    kubectl get deployment trust-manager -n cert-manager
    

    Пример вывода:

    NAME                             READY   STATUS
    trust-manager-7d9f2b8c4e-3a1b2   1/1     Running