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)
相关推荐
谢白羽4 小时前
从传统运维到 AI Infra: K8s 上调度 100 张 GPU踩坑笔记
运维·人工智能·缓存·kubernetes·vllm·sglang·vllm-omni
xianyuCcCcCCCcc5 小时前
Kubernetes 资源调度与弹性伸缩:Schedule、Metric、HPA 与 Quota
云原生·kubernetes
分布式存储与RustFS5 小时前
在 1Panel 应用商店部署 RustFS:安装、配置与验证步骤
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
我不会起名字3225 小时前
滚动更新时请求 502:Pod 终止与 endpoint 摘除的时间差
kubernetes·滚动更新·排查·优雅停机
方便面不加香菜6 小时前
Docker安装详解--基于Ubuntu环境
运维·docker·容器
知已难寻7 小时前
第 5 篇 · 云原生生态与实践:微服务、DevOps、可观测性与 Serverless
大数据·linux·服务器·微服务·云原生·云计算·devops
孔令飞7 小时前
AI 时代岗位调研分析:调研了近3000份AI岗位描述,分享下调研结果
云原生·go·ai编程
L0208248 小时前
Kubernetes Service 与 kube‑proxy 深度详解
运维·算法·云原生·容器·贪心算法·kubernetes
SatanII8 小时前
Kubernetes Ingress
kubernetes·ingress
SatanII8 小时前
kubernetes service && proxy
云原生·容器·kubernetes