首页/云/Kubernetes 速查/节点时间同步与证书校验
集群运维与排障54 条

节点时间同步与证书校验

节点时钟漂移会导致证书校验失败、Token 过期判定异常:kubelet 报证书记录类错误时,先核对时间同步服务。

Kubernetes 速查云更新于 2026-10-13

时间不准会引发哪些故障

节点时钟漂移会带来一串看似无关的问题:证书校验失败、令牌过期判定异常、日志时间线错乱、基于时间的租约与选举判断异常。kubelet 报出证书类错误时,先核对节点时间同步状态往往比直接排查证书更快。常见的时间服务有三种:轻量的 systemd-timesyncd、带漂移补偿的 chrony,以及传统的 ntpd,检查命令各不相同。

基本信息

适用对象集群内所有节点
常见时间服务systemd-timesyncd、chrony、ntpd
检查命令timedatectl、chronyc tracking、ntpq -p
典型症状证书校验失败、令牌判定异常、日志时间错乱
排查入口kubelet 日志中的证书与时间相关报错

典型使用场景

  • 新节点纳管:把时间同步状态列为上线必检项
  • 证书类报错排查:排除时钟漂移这一常见诱因
  • 日志分析:确认多节点日志时间线是否可比对
  • 虚拟机与长期运行节点:漂移更明显,需要定期巡检
  • 故障复盘:把时间偏差作为异常事件的基础检查项

检查(节点上执行)

检查(节点上执行)
timedatectl status
chronyc tracking 2>/dev/null || chronyc sources 2>/dev/null   # chrony 环境
ntpq -p 2>/dev/null                                            # ntpd 环境
journalctl -u kubelet --no-pager | grep -i -E 'certificate|x509' | tail
date -u && kubectl get --raw /healthz                          # 对照控制面时间与健康状态

校正与验证

校正与验证
sudo chronyc makestep                    # chrony:立即步进校正
timedatectl status                       # 查看同步状态与本地时钟
chronyc sources -v | tail -5             # 核对时间源与偏移量
sudo systemctl restart systemd-timesyncd # 轻量客户端场景
sudo systemctl enable --now chronyd      # 确认开机自启,避免重启后不再同步

常见时间服务对照

服务形态检查入口
systemd-timesyncd轻量时间客户端timedatectl 与对应服务日志
chrony带漂移补偿的实现chronyc tracking 与 sources
ntpd传统守护进程ntpq -p
校验方式对照时间源偏移偏移过大即需要校正
虚拟机与长期运行的节点更容易漂移:把时间同步状态纳入例行巡检,比事后从证书报错反推要省力得多。
只调大证书或令牌的宽限参数来掩盖时钟问题属于治标:同一根因往往会在其他组件上以另一种形式再次出现。

易错点

  • 看到证书错误就直接查证书:忽略时钟偏移这一常见原因,排查效率大打折扣
  • 时间服务没有设置开机自启:节点重启后不再同步,问题在重启后重现
  • 直接跳变系统时间:运行中的服务可能因时间突变出现异常,校正方式要按业务影响选择
  • 只校正其中一台节点:集群内时间不一致的问题依旧存在,故障仍会复现

数据来源与参考

  • Kubernetes 官方文档 · 集群故障排查(时钟偏差)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌