在安装k8s集群前需确保各节点时间同步;chrony
是一个优秀的 NTP
实现,性能比ntp好,且配置管理方便;它既可作时间服务器服务端,也可作客户端。
OpenStack
社区也推荐使用chrony
实现各节点之间的时间同步
项目中选定一个节点(groups.chrony[0]
)作为集群内部其他节点的时间同步源,而这个节点本身从公网源同步;当然如果整个集群都无法访问公网,那么请手动校准这个节点的时间后,仍旧可以作为内部集群的时间源服务器。
-
配置 chrony server,详见roles/chrony/templates/server.conf.j2
-
配置 chrony client,详见roles/chrony/templates/client.conf.j2
- 修改 clusters/${cluster_name}/hosts 文件,在
chrony
组中加入选中的节点ip - [可选] 修改 clusters/${cluster_name}/config.yml 中的相关配置
-执行命令安装
ezctl setup ${cluster_name} 01
- 检查chronyd服务状态
systemctl status chronyd
- 检查chronyd时间同步日志
/var/log/chrony
chrony 服务启动后,chrony server 会与配置的公网参考时间服务器进行同步;server 同步完成后,chrony client 会与 server 进行时间同步;一般来说整个集群达到时间同步需要几十分钟。可以用如下命令检查,初始时 NTP synchronized: no,同步完成后 NTP synchronized: yes
$ ansible -i clusters/${cluster_name}/hosts all -m shell -a 'timedatectl'
192.168.1.1 | SUCCESS | rc=0 >>
Local time: Sat 2019-01-26 11:51:51 HKT
Universal time: Sat 2019-01-26 03:51:51 UTC
RTC time: Sat 2019-01-26 03:51:52
Time zone: Asia/Hong_Kong (HKT, +0800)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
192.168.1.4 | SUCCESS | rc=0 >>
Local time: Sat 2019-01-26 11:51:51 HKT
Universal time: Sat 2019-01-26 03:51:51 UTC
RTC time: Sat 2019-01-26 03:51:52
Time zone: Asia/Hong_Kong (HKT, +0800)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
192.168.1.2 | SUCCESS | rc=0 >>
Local time: Sat 2019-01-26 11:51:51 HKT
Universal time: Sat 2019-01-26 03:51:51 UTC
RTC time: Sat 2019-01-26 03:51:52
Time zone: Asia/Hong_Kong (HKT, +0800)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
192.168.1.3 | SUCCESS | rc=0 >>
Local time: Sat 2019-01-26 11:51:51 HKT
Universal time: Sat 2019-01-26 03:51:51 UTC
RTC time: Sat 2019-01-26 03:51:52
Time zone: Asia/Hong_Kong (HKT, +0800)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no