0

0

chrony/ntpd 在 K3s 节点上失效导致时间漂移的修复经验

舞姬之光

舞姬之光

发布时间:2026-01-18 19:41:02

|

183人浏览过

|

来源于php中文网

原创

K3s集群时间漂移主因是chronyd与systemd-timesyncd端口冲突或hypervisor同步未启用;需停用timesyncd、配置chrony国内NTP源及makestep、虚拟机优先启用hypervisor时间同步。

chrony/ntpd 在 k3s 节点上失效导致时间漂移的修复经验

在 K3s 集群中,节点时间漂移往往不是 Chrony 或 NTPd 本身坏了,而是它被系统机制静默覆盖或冲突抑制了。K3s 默认不自带时间同步服务,但它的轻量特性反而放大了时间问题的连锁影响——etcd 心跳超时、证书签发失败、日志时间错乱、Operator 控制循环延迟等都可能源于几秒偏差。

确认是否真由 chrony/ntpd 失效引起

先排除 K3s 自身干扰:

  • 运行 timedatectl status,重点看 “System clock synchronized” 是否为 no,且 “NTP service” 显示 inactive 或 unknown
  • 检查是否有 k3s-agentk3s-server 进程在用 --disable-agent--disable-servicelb 等参数启动,部分定制镜像会顺带禁用 systemd-timesyncd
  • K3s 官方文档明确说明:它不管理主机时间,但若启用了 systemd-timesyncd(如 Ubuntu 22.04 默认),它可能和 chronyd 抢占 123/UDP 端口,导致 chronyd 启动失败却无报错

修复 chrony 冲突与抢占问题

K3s 节点常见于边缘设备或云上小规格 VM,chronyd 更适配这类场景,但需主动规避 systemd-timesyncd 干扰:

Autoppt
Autoppt

Autoppt:打造高效与精美PPT的AI工具

下载
  • 停用并屏蔽 timesyncd:
    sudo systemctl stop systemd-timesyncd
    sudo systemctl disable systemd-timesyncd
    sudo timedatectl set-ntp false
  • 确保 chronyd 配置含 rtcsync 和合理 makestep(尤其对重启频繁的 K3s edge node):
    /etc/chrony.conf 中添加或确认:
    makestep 1.0 3
    rtcsync
    logdir /var/log/chrony
  • 强制写入硬件时钟(避免断电后时间归零):
    sudo hwclock --systohc

针对 K3s 特定环境的加固配置

边缘 K3s 节点常面临网络抖动、间歇联网、NAT 环境,chrony 需调优以适应:

  • 使用低延迟国内源(避免跨洋解析失败):
    server ntp.aliyun.com iburst minpoll 4 maxpoll 8
    server time1.cloud.tencent.com iburst minpoll 4 maxpoll 8
  • 增加本地参考时钟兜底(可选):
    refclock SOCK /var/run/chrony.ttyS0.sock refid GPS precision 1e-1 offset 0.0 delay 0.0(需配合 GPS 串口模块)
  • 验证同步质量:
    chronyc tracking —— 关注 Offset 是否持续在 ±50ms 内
    chronyc sources -v —— 确保至少一个 source 的 Reach 值为 377(连续 8 次成功)

虚拟化 K3s 节点的特殊处理

若 K3s 运行在 VMware/KVM 上,宿主机时间不准会直接传导给节点:

  • 优先禁用 chronyd,改用 hypervisor 时间同步:
    VMware:启用 VMware Tools 的 tools.syncTime = "TRUE"
    KVM/QEMU:启用 qemu-ga 并配置 org.qemu.guest_agent.0.command.time-sync
  • 若必须用 chronyd,则在 /etc/chrony.confmakestep 0.1 -1 允许任意小偏差立即跳变,并关闭 slew 模式(避免虚拟机时钟拖慢)
  • 禁止在 K3s 节点上运行 ntpd —— 它不支持虚拟化时钟补偿,容易与 hypervisor 冲突

相关专题

更多
edge是什么浏览器
edge是什么浏览器

Edge是一款由Microsoft开发的网页浏览器,是Windows 10操作系统中默认的浏览器,其目标是提供更快、更安全、更现代化的浏览器体验。本专题为大家提供edge浏览器相关的文章、下载、课程内容,供大家免费下载体验。

1324

2023.08.21

IE浏览器自动跳转EDGE如何恢复
IE浏览器自动跳转EDGE如何恢复

ie浏览器自动跳转edge的解决办法:1、更改默认浏览器设置;2、阻止edge浏览器的自动跳转;3、更改超链接的默认打开方式;4、禁用“快速网页查看器”;5、卸载edge浏览器;6、检查第三方插件或应用程序等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

376

2024.03.05

如何解决Edge打开但没有标题的问题
如何解决Edge打开但没有标题的问题

若 Microsoft Edge 浏览器打开后无标题(窗口空白或标题栏缺失),可尝试以下方法解决: 重启 Edge:关闭所有窗口,重新启动浏览器。 重置窗口布局:右击任务栏 Edge 图标 → 选择「最大化」或「还原」。 禁用扩展:进入 edge://extensions 临时关闭插件测试。 重置浏览器设置:前往 edge://settings/reset 恢复默认配置。 更新或重装 Edge:检查最新版本,或通过控制面板修复

892

2025.04.24

tcp和udp的区别
tcp和udp的区别

TCP和UDP的区别,在连接性、可靠性、速度和效率、数据报大小以及适用场景等方面。本专题为大家提供tcp和udp的区别的相关的文章、下载、课程内容,供大家免费下载体验。

119

2023.07.25

udp是什么协议
udp是什么协议

UDP是OSI参考模型中一种无连接的传输层协议。本专题为大家带来udp是什么协议的相关文章,免费提供给大家。

284

2023.08.08

tcp和udp有什么区别
tcp和udp有什么区别

tcp和udp的区别有:1、udp是无连接的,tcp是面向连接的;2、udp是不可靠传输,tcp是可靠传输;3、udp是面向报文传输,tcp是面向字节流传输。想了解更多tcp相关的内容,可阅读本专题下面的相关文章。

377

2024.11.14

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

804

2023.10.27

ubunt上安装和配置vnc
ubunt上安装和配置vnc

安装方法:安装VNC服务器、启动VNC服务器、设置VNC密码等等。想了解更多ubuntu的相关内容,可以阅读本专题下面的文章。

409

2023.12.28

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

68

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 6.7万人学习

前端基础到实战(HTML5+CSS3+ES6+NPM)
前端基础到实战(HTML5+CSS3+ES6+NPM)

共162课时 | 18.9万人学习

第二十二期_前端开发
第二十二期_前端开发

共119课时 | 12.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号