AcmeChallengeFailed
Что означает алерт
ACME Challenge находится в конечном состоянии errored, invalid или expired дольше 15 минут. Severity: warning.
Попытка валидации домена завершилась неудачей. Возможны два случая:
- неудачна текущая попытка перевыпуска: сертификат не обновлён, cert-manager повторит выпуск после паузы;
- объект Challenge остался от старой попытки, а следующая попытка прошла через другой Order: на сертификат не влияет.
Лейблы алерта: cluster, exported_namespace, name (имя Challenge), domain, status, reason (текст ошибки cert-manager или Let's Encrypt).
Алерт работает только в кластерах с cert-manager v1.20.0 и выше (сейчас только prod).
Диагностика (по шагам)
-
Определить сертификат. Имя Challenge строится как
<certificate>-<revision>-<hash>-<hash>. -
Проверить состояние сертификата и Order этой попытки:
kubectl --context <ctx> -n <ns> get certificate <cert>
kubectl --context <ctx> -n <ns> get order | grep <cert>
- Определить случай:
| Certificate | Order, которому принадлежит Challenge | Случай |
|---|---|---|
Ready=True, срок в норме |
другой Order этого сертификата в valid или Order Challenge отсутствует |
старая попытка |
Ready=False |
Order в invalid / errored |
неудачна текущая попытка |
Владельца Challenge показывает ownerReferences:
kubectl --context <ctx> -n <ns> get challenge <challenge> -o jsonpath='{.metadata.ownerReferences[0].kind}/{.metadata.ownerReferences[0].name}{"\n"}'
Как починить
Старая попытка
Удалить Challenge:
kubectl --context <ctx> -n <ns> delete challenge <challenge>
Неудачна текущая попытка
- Определить причину по лейблу
reason:
| Текст | Причина |
|---|---|
wrong status code '503', '404', did not get expected response |
шлюз не доводит запрос до solver, раздел 2 общего документа |
Timeout during connect, DNS problem, NXDOMAIN |
домен не указывает на шлюз, раздел 3 общего документа |
rateLimited |
ограничения Let's Encrypt, раздел 4 общего документа |
Expired authorization |
авторизация истекла до завершения валидации; причина обычно в разделах 1–3 |
- Устранить причину по разделу общего документа.
- Запустить выпуск:
cmctl renew <cert> -n <ns> --context <ctx>.
Критерий закрытия
- Challenge в конечном состоянии отсутствует.
- У Certificate
Ready=True. - Алерт перешёл в
inactive.