Цепочка: интернет → роутер → Traefik → сервис

Как cert-manager получает сертификат
ClusterIssuer в infrastructure/cert-manager/cluster-issuer.yaml настраивает интеграцию с Let’s Encrypt через HTTP-01 валидацию.
Когда Ingress создаётся с аннотацией cert-manager.io/cluster-issuer: letsencrypt-prod, cert-manager:
- Видит новый Ingress и аннотацию
- Создаёт
CertificateRequestк Let’s Encrypt - Let’s Encrypt отвечает: «Докажи, что ты владеешь доменом — положи файл по адресу
http://grafana.alexandrshapkin.ru/.well-known/acme-challenge/TOKEN» - cert-manager создаёт временный Ingress и Pod, который отвечает на этот запрос
- Let’s Encrypt проверяет файл и выдаёт сертификат
- cert-manager сохраняет сертификат в Secret
grafana-tls - Traefik читает Secret и использует сертификат для HTTPS
Сертификаты обновляются автоматически за 30 дней до истечения.
Почему Traefik, а не NGINX
k3s включает Traefik из коробки — он уже настроен и занял порты 80/443. Traefik автоматически читает объекты Ingress из всех namespace и настраивает маршрутизацию без перезапуска.