
f4113n/linkerd-cert-checkLinkerd Certificate Expiration Check Docker镜像是一个轻量级工具,专门用于监控Linkerd服务网格环境中的证书有效期状态。该镜像通过定期扫描Linkerd控制平面(如identity服务)及数据平面(如代理注入的Pod)使用的TLS证书,识别即将过期或已过期的证书,并输出明确的状态信息及告警提示。其核心价值在于帮助运维团队提前发现证书过期风险,确保及时更新证书,保障服务网格通信的连续性和安全性。
linkerd_cert_expiry_seconds)等方式提供告警信息linkerd)及数据平面命名空间(如default、prod等)kubeconfig文件或使用集群内Service Account)linkerd check无异常)bashdocker run -d \ --name linkerd-cert-check \ -v $HOME/.kube/config:/root/.kube/config:ro \ # 挂载本地kubeconfig(只读) -e CHECK_INTERVAL=3600 \ # 检查间隔:1小时(单位:秒) -e NAMESPACE="linkerd,default,prod" \ # 检查的命名空间(多个用逗号分隔) -e ALERT_THRESHOLD=14 \ # 过期阈值:剩余14天触发告警 -e LOG_LEVEL=debug \ # 日志级别:debug(可选info/warn/error) -p 9090:9090 \ # 暴露Prometheus指标端口 your-registry/linkerd-cert-expiry-check:latest
yamlversion: '3' services: linkerd-cert-check: image: your-registry/linkerd-cert-expiry-check:latest container_name: linkerd-cert-check volumes: - $HOME/.kube/config:/root/.kube/config:ro environment: - CHECK_INTERVAL=86400 # 检查间隔:24小时(默认值) - NAMESPACE=linkerd # 仅检查Linkerd控制平面命名空间(默认值) - ALERT_THRESHOLD=30 # 过期阈值:30天(默认值) - KUBECONFIG_PATH=/root/.kube/config # kubeconfig文件路径(默认值) - PROMETHEUS_PORT=9090 # Prometheus指标端口(默认值) ports: - "9090:9090" restart: unless-stopped
| 参数名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
CHECK_INTERVAL | 证书检查间隔(单位:秒) | 86400(24h) | 3600(1h) |
NAMESPACE | 要检查的Kubernetes命名空间(多个用逗号分隔,*表示所有命名空间) | linkerd | linkerd,prod,default |
ALERT_THRESHOLD | 证书过期告警阈值(单位:天,剩余天数≤此值时触发告警) | 30 | 14 |
KUBECONFIG_PATH | 容器内kubeconfig文件路径(需通过挂载提供) | /root/.kube/config | /etc/kube/config |
LOG_LEVEL | 日志输出级别(可选:debug/info/warn/error) | info | debug |
PROMETHEUS_PORT | Prometheus指标暴露端口(设为0禁用指标暴露) | 9090 | 9100 |
容器日志将直接输出证书检查结果,例如:
logINFO[2023-10-01T08:00:00Z] 开始证书检查,命名空间:linkerd,prod INFO[2023-10-01T08:00:02Z] 发现即将过期证书:linkerd-identity-issuer (命名空间:linkerd),剩余有效期:25天 WARN[2023-10-01T08:00:02Z] 证书已过期:linkerd-proxy-injector (命名空间:linkerd),过期时间:2023-09-28T12:00:00Z INFO[2023-10-01T08:00:02Z] 检查完成,共发现1个过期证书,1个即将过期证书
通过http://<容器IP>:<PROMETHEUS_PORT>/metrics可访问Prometheus指标,关键指标包括:
linkerd_cert_expiry_seconds{namespace="<ns>", cert_name="<name>"}:证书剩余有效期(秒),过期证书值为负linkerd_cert_check_success{namespace="<ns>"}:检查是否成功(1=成功,0=失败)get、list权限(针对secrets资源),建议通过RBAC为Service Account绑定最小权限(如仅允许访问linkerd及目标数据平面命名空间的secrets)secrets中(如linkerd-identity-issuer、linkerd-proxy-injector-tls等),镜像默认扫描此类secret的tls.crt字段,若自定义证书存储路径需通过环境变量CERT_SECRET_LABELS配置linkerd-cert-expiry-check:2.14)




manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务