Ga naar inhoud

KubeClientCertificateExpiration

  • Bron: kube-prometheus-stack default rules
  • Alert: KubeClientCertificateExpiration
  • Severity: warning

Betekenis

Clientcertificaten die door de Kubernetes API-server worden gezien, verlopen binnenkort. Denk aan kubelet client certs, controller-manager/scheduler client certs, aggregated API servers, of statische kubeconfigs.

Diagnostiek (Prometheus)

  • Overzicht (kortste resterende tijd eerst):
  • sort(apiserver_client_certificate_expiration_seconds)
  • bottomk(10, apiserver_client_certificate_expiration_seconds)
  • Filter op specifieke client/issuer/subject labels als aanwezig, om de bron te vinden.

Stappenplan (oplossen)

  1. Identificeer de bron
  2. Bekijk labels/onderwerpen in de metric-resultaten (client/subject/issuer/serial).
  3. Bepaal of het gaat om kubelet, control-plane componenten, aggregated API (bv. metrics-server), of een externe client (admin kubeconfig).
  4. Kubelet clientcerts
  5. Zorg dat kubelet certificate rotation aan staat (kubelet config rotateCertificates: true).
  6. Controleer CSR’s en approvals:
    • kubectl get csr
    • Afgekeurd/blokkade? Check approving controllers of policy.
  7. Control-plane componenten (controller-manager/scheduler)
  8. Indien self-managed: hergenereer/renew clientcerts of ververs de secrets/manifests en herstart de pods veilig.
  9. In managed omgevingen: certificaatrotatie is vaak geautomatiseerd door de provider; verifieer of rotatie loopt en of er fouten zijn in controller logs.
  10. Aggregated/extension API servers (bijv. metrics-server)
  11. Heruitgeven/vernieuwen van clientcert of herdeploy met geldige credentials.
  12. Statische kubeconfigs (developers/automation)
  13. Genereer nieuwe kubeconfig met geldige clientcerts/credentials.
  14. Vervang secrets/CI-variabelen en herstart jobs die het gebruiken.
  15. Validatie
  16. De waarde van apiserver_client_certificate_expiration_seconds stijgt weer (voldoende marge) voor de betreffende subjecten.
  17. Alert gaat naar Resolved na volgende evaluaties.

Routing

  • Slack via default receiver; meldingsherhaling ingesteld op 24h.

Test

  • N.v.t. (productie-alert). Verifiëren door de Prometheus-query; er is geen veilige synthetische test in productie.