ToB企服应用市场:ToB评测及商务社交产业平台

标题: 监控Kubernetes集群证书过期时间的三种方案 [打印本页]

作者: 东湖之滨    时间: 2022-12-14 19:19
标题: 监控Kubernetes集群证书过期时间的三种方案
前言

Kubernetes 中大量用到了证书, 比如 ca证书、以及 kubelet、apiserver、proxy、etcd等组件,还有 kubeconfig 文件。
如果证书过期,轻则无法登录 Kubernetes 集群,重则整个集群异常。
为了解决证书过期的问题,一般有以下几种方式:
本次主要介绍关于 Kubernetes 集群证书过期的监控,这里提供 3 种监控方案:
方案一: Blackbox Exporter 监控 Kubernetes apiserver 证书过期时间

Blackbox Exporter 用于探测 HTTPS、HTTP、TCP、DNS、ICMP 和 grpc 等 Endpoint。在你定义 Endpoint 后,Blackbox Exporter 会生成指标,可以使用 Grafana 等工具进行可视化。Blackbox Exporter 最重要的功能之一是测量 Endpoint 的可用性。
当然, Blackbox Exporter 探测 HTTPS 后就可以获取到证书的相关信息, 就是利用这种方式实现对 Kubernetes apiserver 证书过期时间的监控.
配置步骤

  1. apiVersion: monitoring.coreos.com/v1
  2. kind: Probe
  3. metadata:
  4.   name: kubernetes-apiserver
  5. spec:
  6.   interval: 60s
  7.   module: http_2xx
  8.   prober:
  9.     path: /probe
  10.     url: monitor-prometheus-blackbox-exporter.default.svc.cluster.local:9115
  11.   targets:
  12.     staticConfig:
  13.       static:
  14.       - https://kubernetes.default.svc.cluster.local/readyz
复制代码
最后, 可以增加 Prometheus 告警 Rule, 这里就直接用 Prometheus Operator 创建 PrometheusRule CRD 做示例了, 示例如下:
[code]apiVersion: monitoring.coreos.com/v1kind: PrometheusRulemetadata:  name: prometheus-blackbox-exporterspec:  groups:  - name: prometheus-blackbox-exporter    rules:    - alert: BlackboxSslCertificateWillExpireSoon      expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 30      for: 0m      labels:        severity: warning    - alert: BlackboxSslCertificateWillExpireSoon      expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 14      for: 0m      labels:        severity: critical    - alert: BlackboxSslCertificateExpired      annotations:        description: |-          SSL certificate has expired already            VALUE = {{ $value }}            LABELS = {{ $labels }}        summary: SSL certificate expired (instance {{ $labels.instance }})      expr: probe_ssl_earliest_cert_expiry - time()




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4