English version

KubeApiCertExpiresSoon: что делать при алерте

Правило алерта

alert: KubeApiCertExpiresSoon
expr: histogram_quantile(0.01, sum by (instance, le) (
  rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m])
)) / 86400 < 7
and histogram_quantile(0.01, sum by (instance, le) (
  rate(apiserver_client_certificate_expiration_seconds_bucket{job="apiserver"}[5m])
)) / 86400 >= 1
for: 10m
severity: warning

Сообщение алерта: Клиентский сертификат kube-apiserver истекает менее чем через 7 дней ({{ $labels.instance }})

Что значит

Клиентские сертификаты, которыми обращаются к kube-apiserver, истекают менее чем через 7 дней (и не менее чем через 1 день). Метрика apiserver_client_certificate_expiration_seconds доступна не во всех дистрибутивах; правило работает, только если она есть. Значение — оценка по нижним 1% наблюдаемых сертификатов.

Частые причины

Сертификаты не продлевались автоматически (kubeadm не обновил их, истёк срок у kubeconfig-пользователей, сервисных аккаунтов или компонентов).

Диагностика

kubeadm certs check-expiration           # для кластеров kubeadm, на control plane
openssl x509 -noout -enddate -in /etc/kubernetes/pki/apiserver.crt
kubectl config view --raw -o jsonpath='{.users[*].user.client-certificate-data}' | base64 -d | openssl x509 -noout -enddate

Как исправить

Для kubeadm: kubeadm certs renew all на каждом control plane узле, затем перезапуск компонентов control plane. В управляемых кластерах (EKS/GKE/AKS и т.п.) сертификатами управляет провайдер — смотрите его документацию.

Когда можно заглушить

Если вы уже знаете об истечении и продление запланировано до критического срока.

Похожие алерты

Весь набор из 44 протестированных правил + Alertmanager → Telegram: 790 ₽
Открыть в Telegram · Бесплатный набор Monitoring Lite · Все алерты runbook