Alpine Linux运行chrony(NTP服务)

边缘云计算架构 中,部署独立 边缘云NTP和DNS服务 以提供整个边缘云的时钟同步(解决 Alpine Linux在树莓派启动”clock skew”报错 )和提供 K3s - 轻量级Kubernetes 集群主机名解析。

部署说明

边缘云计算架构 中, x-k3s-m-1 部署 NTP 服务:

安装

chrony配置

  • 在服务器 x-k3s-m-1 上编辑 /etc/chrony/chrony.conf 添加服务配置行:

chrony服务器的/etc/chrony/chrony.conf配置
# chrony server config

pool pool.ntp.org iburst
initstepslew 10 pool.ntp.org

allow 192.168.7.0/24

driftfile /var/lib/chrony/chrony.drift
rtcsync
cmdport 0
  • 然后在服务器 x-k3s-m-1 上执行以下命令重启 chrony 服务,很快就矫正了时间:

alpine linux系统中重启chronyd服务
sudo service chronyd restart
  • 边缘云计算架构 中其他节点都以 x-k3s-m-1 为NTP服务器,配置 /etc/chrony/chrony.conf 如下:

chrony服务端的/etc/chrony/chrony.conf配置
# chrony client config

pool 192.168.7.11 iburst
initstepslew 10 192.168.7.11

driftfile /var/lib/chrony/chrony.drift
rtcsync
cmdport 0

异常排查

我遇到一个比较奇怪的问题:

  • x-k3s-m-1 作为NTP服务器启动后,主机的时间立即就调整正确了

  • 但是其他节点以 x-k3s-m-1 为服务器,重启 chrony 服务却不调整时间,一直显示比实际时间早1周左右

我最初怀疑是时间差异太大导致NTP不能自动调整,但是 /var/log/chrony 目录下是空的,参考ubuntu linux发行版的 chrony.conf 配置启用日志:

# Uncomment the following line to turn logging on.
log tracking measurements statistics

# Log files location.
logdir /var/log/chrony

但是依然没有日志生成 ^_^

我乌龙了 ,原来我不知道为何鬼迷心窍,在 x-k3s-m-1/etc/chrony/chrony.conf 配置行:

pool pool.ntp.org offline iburst

上面多写了一个 offline 参数,这个参数应该是导致 chrony 停止对外服务。修订为:

pool pool.ntp.org iburst

重启 x-k3s-m-1 NTP服务器之后,网络中其他ntp客户端时间就正常调整了