k8s证书过期时间扫描

查询证书过期时间的方法

使用 openssl 命令可以检查证书过期时间,适用于集群内外的证书文件:

bash 复制代码
openssl x509 -noout -enddate -in /etc/kubernetes/pki/apiserver.crt

示例输出:

复制代码
notAfter=May 24 12:00:00 2025 GMT

扫描集群内所有证书过期时间

通过 kubeadm 工具一键检查集群证书有效期:

bash 复制代码
kubeadm certs check-expiration

输出结果将显示:

  • 证书路径
  • 过期时间
  • 剩余天数
  • 是否自动续订

检查 kubeconfig 文件中的证书

提取 kubeconfig 中的证书并验证有效期:

bash 复制代码
grep client-certificate ~/.kube/config | awk '{print $2}' | xargs openssl x509 -noout -enddate

自动监控脚本示例

以下 Shell 脚本可批量扫描指定目录下的证书:

bash 复制代码
#!/bin/bash
CERT_DIR="/etc/kubernetes/pki"
THRESHOLD_DAYS=30

find $CERT_DIR -type f -name "*.crt" | while read cert; do
    expiry=$(openssl x509 -enddate -noout -in "$cert" | cut -d= -f2)
    remaining_days=$(( ($(date -d "$expiry" +%s) - $(date +%s)) / 86400 ))
    
    if [ $remaining_days -lt $THRESHOLD_DAYS ]; then
        echo "ALERT: $cert 将在 $remaining_days 天后过期 ($expiry)"
    fi
done

使用 kubelet 证书API

通过 Kubernetes API 获取 kubelet 证书信息:

bash 复制代码
kubectl get --raw /api/v1/nodes/<node-name>/proxy/configz | jq '.kubeletConfig.serverTLSBootstrap' 

第三方工具推荐

  1. cert-manager:自动管理证书生命周期,支持告警功能
  2. kube-cert-manager:专为 Kubernetes 设计的证书监控工具
  3. Prometheus SSL Exporter:提供证书过期指标并集成告警系统

关键证书位置说明

  • /etc/kubernetes/pki/:控制平面核心证书
  • /var/lib/kubelet/pki/:kubelet 客户端证书
  • ~/.kube/config:用户访问凭据
  • /etc/kubernetes/manifests/:静态 Pod 使用的证书

证书续订操作

对于 kubeadm 管理的集群,执行自动续订:

bash 复制代码
kubeadm certs renew all

完成后需重启控制平面组件:

bash 复制代码
docker restart $(docker ps -q -f name=k8s_apiserver)
相关推荐
虾说羊18 分钟前
docker容器化部署项目流程
运维·docker·容器
骇客野人1 小时前
通过脚本推送Docker镜像
java·docker·容器
liux35282 小时前
基于kubeadm部署Kubernetes 1.26.4 集群指南
云原生·容器·kubernetes
Zfox_2 小时前
CANN GE 深度解析:图编译器与执行引擎的后端优化策略、OM 文件结构与 Stream 调度机制
容器·节点小宝
人鱼传说5 小时前
docker desktop是一个好东西
运维·docker·容器
小章UPUP6 小时前
Kubernetes (K8s) 与 Podman 的比较
容器·kubernetes·podman
忆~遂愿6 小时前
CANN metadef 核心解析:计算图原型定义、算子元数据抽象与异构系统互操作机制
docker·容器
说实话起个名字真难啊6 小时前
用docker来安装openclaw
docker·ai·容器
恬静的小魔龙7 小时前
【群晖Nas】群晖Nas中实现SVN Server功能、Docker/ContainerManager等
docker·svn·容器
Zfox_8 小时前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka