Aws-cert-manager: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
| Строка 24: | Строка 24: | ||
* Установка в том чимсле создания <code>Custom Resource Definition</code> (далее <code>CRD</code>) |
* Установка в том чимсле создания <code>Custom Resource Definition</code> (далее <code>CRD</code>) |
||
* Cоздается ресусурс типа <code>Issuer</code> или <code>ClusterIssuer</code> — описывает, откуда брать сертификаты |
* Cоздается ресусурс типа <code>Issuer</code> или <code>ClusterIssuer</code> — описывает, откуда брать сертификаты |
||
| + | ** Разница в том что Issuer доступен только внутри namespace, в моем случае когда все сертефикаты нужны для нескольких копий приложения ("окружений"), например <code>dev.domain.tld</code>, <code>staging.domain.tld</code>, <code>qa.domain.tld</code> достаточно иметь один ресурс <code>ClusterIssuer</code> на всех. |
||
Создаёшь </code>Certificate</code>-ресурс — cert-manager следит за ним и выполняет выпуск. |
Создаёшь </code>Certificate</code>-ресурс — cert-manager следит за ним и выполняет выпуск. |
||
Версия 15:22, 8 июня 2025
Для Ingress требуется автоматически выписывать сертефикаты для доменов которые "Хостятся" на нем
Предварительные требования
Требуется доступ (ручной или автоматический) к управлению зоной DNS для того что бы направить нужные домены на соответвующий Ingress
Возможные варианты решения
- Использовать независимое от cloud-провайдера решение, Let's encrypt.
- В завимсимости от того где лежит DNS-зона и как ей можно управлять, может требовать или не требовать ручной правкии зоны.
- В случае если зона хостится на AWS Route53 возможно применить например такую автоматизацию обновления зоны
- К плюсам можно отнести то что решение будет работать на любом клауде, не привязано к провайдеру.
- Список возможных Issuers досаточно широк (https://cert-manager.io/docs/configuration/issuers/), для тестирования можно например использовать локально развернутый Hashicorp Vault
- Использовать сертефикаты от AWS (это пока не реализовано)
cert-manager
Для решения этой задачи существует cert-manager
Примерный принцип работы (насколько я его понимаю)
- Установка в том чимсле создания
Custom Resource Definition(далееCRD) - Cоздается ресусурс типа
IssuerилиClusterIssuer— описывает, откуда брать сертификаты- Разница в том что Issuer доступен только внутри namespace, в моем случае когда все сертефикаты нужны для нескольких копий приложения ("окружений"), например
dev.domain.tld,staging.domain.tld,qa.domain.tldдостаточно иметь один ресурсClusterIssuerна всех.
- Разница в том что Issuer доступен только внутри namespace, в моем случае когда все сертефикаты нужны для нескольких копий приложения ("окружений"), например
Создаёшь Certificate-ресурс — cert-manager следит за ним и выполняет выпуск. cert-manager автоматически: делает HTTP или DNS-проверку (чтобы подтвердить владение доменом), получает сертификат от CA, сохраняет в Secret в namespace, продлевает его до истечения срока действия.