cert-manager
16 commands
16 shown
Установить cert-manager через Helm
Установить cert-manager с CRD в отдельном неймспейсе
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --set installCRDs=true
Проверить поды cert-manager
Убедиться, что все компоненты cert-manager запущены
kubectl get pods -n cert-manager
Список сертификатов
Показать все ресурсы Certificate во всех неймспейсах
kubectl get certificates -A
Описать сертификат
Показать статус и события ресурса Certificate
kubectl describe certificate my-cert -n default
Список запросов сертификатов
Показать все объекты CertificateRequest
kubectl get certificaterequests -A
Создать ClusterIssuer (Let's Encrypt)
Применить манифест ClusterIssuer для Let's Encrypt ACME
kubectl apply -f clusterissuer-letsencrypt.yaml
Проверить ClusterIssuers
Показать все ClusterIssuer и их статус готовности
kubectl get clusterissuers
Вручную запустить обновление
Принудительно обновить сертификат через cert-manager
kubectl annotate certificate my-cert cert-manager.io/issueTime="$(date -u +%Y-%m-%dT%H:%M:%SZ)" --overwrite
Просмотр логов cert-manager
Стримить логи основного контроллера cert-manager
kubectl logs -n cert-manager deploy/cert-manager -f
cmctl проверка API
Проверить готовность API cert-manager через cmctl
cmctl check api
Создать ClusterIssuer (Let's Encrypt)
Создать ClusterIssuer Let's Encrypt prod с HTTP-01 solver
kubectl apply -f - <<EOF
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: admin@example.com
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx
EOF
Принудительное обновление сертификата
Запускает немедленный перевыпуск, не дожидаясь окна обновления; появится новый CertificateRequest
cmctl renew <name> -n <ns>
Диагностика статуса сертификата
Сквозной обзор: Certificate, Request, Order, Challenge и точная причина сбоя ACME
cmctl status certificate <name> -n <ns>
Просмотр содержимого выпущенного секрета
Декодирует tls.crt и показывает издателя, SAN и срок действия без ручного openssl x509
cmctl inspect secret <name> -n <ns>
ClusterIssuer с DNS01 на Route53
DNS01-издатель для wildcard-сертификатов; IRSA или секрет должен давать права на изменение записей route53
kubectl apply -f - <<EOF
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-dns
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-dns
solvers:
- dns01:
route53:
region: us-east-1
hostedZoneID: <id>
EOF
Зависшие ACME-челленджи
Показывает ожидающие проверки и ошибку propagation/self-check, блокирующую выпуск
kubectl get challenges -A -o wide && kubectl describe challenge -n <ns> <name>
no commands match