You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下Minikube集群kubectl访问API Server遇证书过期,求证书续订方案

解决kubectl证书过期/时间不匹配的问题

首先看你报错的细节:current time 2021-08-30T14:39:50+01:00 is before 2021-08-30T14:20:10Z,这里藏了个时区坑——你的系统用的是+01:00时区(比如欧洲中部时间),而证书生效时间用的是UTC标准时间,换算下来你的本地时间14:39其实对应UTC的13:39,确实比证书生效的UTC14:20早,这大概率是系统时间不同步导致的,先优先排查这个:

第一步:检查并同步系统时间

  1. 查看当前系统时间和时区状态:
    timedatectl
    
    确认输出里的Local Time和UTC Time是否对应,NTP service是否显示active。
  2. 如果NTP没开启,先打开自动时间同步:
    sudo timedatectl set-ntp on
    
  3. 手动强制同步时间(如果自动同步没生效):
    sudo apt update && sudo apt install -y ntpdate
    sudo ntpdate pool.ntp.org
    

同步完时间后再试试kubectl get pods,很多时候这个错误都是时间不同步导致的,不一定是证书真的过期。

如果时间没问题,再续订MicroK8s证书

从你的kubectl配置看,你实际用的是MicroK8s(不是开头提到的Minikube),可以用MicroK8s自带的证书刷新工具:

  1. 停止MicroK8s服务:
    sudo microk8s stop
    
  2. 刷新API Server的证书(如果需要全量刷新所有集群证书,把--cert server.crt换成--all):
    sudo microk8s refresh-certs --cert server.crt
    
  3. 重启MicroK8s:
    sudo microk8s start
    
  4. 更新kubectl的配置文件,确保CA证书是最新的:
    sudo microk8s config > ~/.kube/config
    
    如果你是root用户,就导出到root的配置目录:
    sudo microk8s config > /root/.kube/config
    

如果你确实用的是Minikube(误写为MicroK8s)

如果是Minikube集群,续订证书的方法更直接:

  • Minikube 1.20及以上版本可以直接续订证书:
    minikube certs renew all
    minikube stop && minikube start
    
  • 旧版本可以直接删除重建集群(注意:此操作会丢失集群数据,记得提前备份):
    minikube delete
    minikube start
    

内容的提问来源于stack exchange,提问作者e2rabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 07:33:12