k8s证书监控--x509-certificate-exporter
目录
k8s证书监控--x509-certificate-exporter
一、下载并解压
下载并解压helm包x509-certificate-exporter-3.10.1.tgz
copy# 解压 tar -zxvf x509-certificate-exporter-3.10.1.tgz cd x509-certificate-exporter # 根据需求修改values.yaml(详见下方修改项建议) # 创建namespace,也可使用已有namespace,但建议新建一个 kubectl creste namespace ssl-monitor # 修改完毕后,创建监控服务 helm install x509-certificate-exporter . --namespace ssl-monitor
二、推送镜像到镜像仓库
copy# 导出镜像包 docker load -i enix-exporter.tar # 镜像重命名 docker tag docker.io/enix/x509-certificate-exporter:3.10.1 【harbor地址】/enix/x509-certificate-exporter:3.10.1 # 推送镜像 docker push 【harbor地址】/enix/x509-certificate-exporter:3.10.1
三、根据实际情况修改values.yaml,其他配置可不做修改
copyimage: # 修改为harvor地址,例如10.76.153.18:8080 registry: docker.io # 修改为仓库名称 repository: enix/x509-certificate-exporter # 修改为镜像名称,默认是Chart中的appVersion,3.10.1 tag: "" secretsExporter: # 是否监控TLS Secrets,需要为true,不需要为false,这会创建一个deployment enabled: true hostPathsExporter: daemonSets: # ds名称,建议以mater、nodes、etcd等名称作为区分 master: # 节点标签,根据实际情况调整,基本也不用修改 nodeSelector: node-role.kubernetes.io/master: "" # 容忍,根据实际情况调整,基本也不用修改 tolerations: - effect: NoSchedule key: node-role.kubernetes.io/master operator: Exists # 证书所在目录,根据实际情况调整 watchFiles: - /var/lib/kubelet/pki/kubelet-client-current.pem - /etc/kubernetes/pki/apiserver.crt # - /etc/kubernetes/pki/apiserver-etcd-client.crt - /etc/kubernetes/pki/apiserver-kubelet-client.crt - /etc/kubernetes/pki/ca.crt - /etc/kubernetes/pki/front-proxy-ca.crt - /etc/kubernetes/pki/front-proxy-client.crt # - /etc/kubernetes/pki/etcd/ca.crt # - /etc/kubernetes/pki/etcd/healthcheck-client.crt # - /etc/kubernetes/pki/etcd/peer.crt # - /etc/kubernetes/pki/etcd/server.crt # 配置文件所在目录,根据实际情况调整,也可不做配置 watchKubeconfFiles: - /etc/kubernetes/admin.conf - /etc/kubernetes/controller-manager.conf - /etc/kubernetes/scheduler.conf # 工作节点,根据实际情况调整,可不做配置 nodes: nodeSelector: node-role.kubernetes.io/worker: "" tolerations: - effect: NoExecute key: check-domain operator: Exists watchFiles: - /var/lib/kubelet/pki/kubelet-client-current.pem - /etc/kubernetes/pki/ca.crt
四、配置监控以及告警
前往prometheus使用(x509_cert_not_after - time()) / 86400
是否有结果,有则成功,无则失败
前往告警平台配置告警,有效期低于14天告警
promQL为:(x509_cert_not_after - time()) / 86400 < 14
若需要配置grafana面板,则复制helm包中的x509-certificate-exporter/grafana-dashboards/x509-certificate-exporter.json
,通过导入json的形式创建面板即可
五、异常处理
copy# 检查daemonset是否已创建 kubectl get ds -n ssl-monitor # 检查pod是否都运行 kubectl get po -n ssl-monitor -owide # 若运行异常,查看日志,一般都为某证书没读取权限或证书不存在 kubectl logs -n ssl-monitor 【pod name】 # 若证书不存在或目录有误,则调整监控目录 kubectl edit ds -n ssl-monitoring 【ds name】 # 若证书无读取权限,则前往该节点赋权 chmod +r 【证书路径】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构