最近有点忙,在学习kubernetes,有一段时间没更新了。之前感觉ntp时间同步不重要,最近接触集群比较多,发现非常重要,而且自己走了很多坑,记录一下。
一、环境介绍
集群3台机器:
1台机器为server节点,配置ntp-server
其余两台为client,同步server节点的时间
如果有多台,参考client配置就好了
这里有无外网都不影响:
有外网--添加外部的阿里云或者国家授时中心
无外网--同步本地时间,只有集群时间一样的,环境运行就没问题
博主这里用虚拟机演示,有外网
ntp-server-ip-192.168.1.130
ntp-client-ip-192.168.1.131
ntp-client-ip-192.168.1.132
阿里时钟服务器:203.107.6.88
国家授时服务器:114.118.7.161
二、NTP搭建操作
1.所有机器卸载NTP,统一安装ntp 和 ntpdate
这里建议把提前源都统一,保证ntp版本一致,或者下rpm包来安装
#检查是否安装NTP
rpm -qa | grep ntp
#已安装删除ntp
yum –y remove ntpdate-4.2.6p5-22.el7.x86_64
#安装ntp
yum -y install ntp ntpdate
#设置时区上海
timedatectl set-timezone Asia/Shanghai
2.主节点配置ntp服务器,修改配置文件
有外网,优先同步一个外网的时间;
如果外网挂了,这里还配置了一个环回地址,保证本地时间
主节点:修改配置文件 vim /etc/ntp.conf # the administrative functions. restrict 192.168.1.130 nomodify notrap nopeer noquery 修改为ntp-server的IP restrict 203.107.6.88 <==放行 阿里云ntp.aliyun.com 进入本 NTP 的服务器 restrict 114.118.7.161 <==放行 国家授时中心ntp.ntsc.ac.cn进入本 NTP 的服务器 restrict 127.0.0.1 restrict ::1
# Hosts on local network are less restricted. restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap #填写当前网段的,如果跨网段了,博主还没遇到过,试试多加几个网端或者设置成网关的IP
# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). #server 0.centos.pool.ntp.org iburst 注释掉默认配置,重新指定服务器 #server 1.centos.pool.ntp.org iburst #server 2.centos.pool.ntp.org iburst #server 3.centos.pool.ntp.org iburst server 203.107.6.88 prefer <==以这部主机为最优先的server server 114.118.7.161
server 127.127.1.0 指定为本机环回地址 Fudge 127.127.1.0 stratum 10 指定为本机环回地址
3.配置ntp客户端,修改配置文件
其他节点:ntp客户端配置 vi /etc/ntp.conf
#添加一行为网端的 restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap #填写当前网段的,如果跨网段了,博主还没遇到过,试试多加几个网端或者设置成网关的IP
#注释server部分,添加服务端地址 server 192.168.1.130 Fudge 192.168.1.130 stratum 10
4.所有启动服务并同步硬件时间,所有主机都需要设置并统一
这里注意顺序,先配置好server节点,搞定server节点后,大概几分钟, 出现ntpq -p ntpstat有我们配置的阿里ip再去启动clientsystemctl restart ntpd && systemctl enable ntpd #主节点手动同步阿里时钟IP,同步快一点 ntpdate -u 203.107.6.88
#查看是否成功,多等一会,5到10分钟,不行就手动同步一下
ntpq -p && ntpstat
client节点
systemctl restart ntpd && systemctl enable ntpd #ip填写为server端的 ntpdate -u 192.168.1.130
5.其他补充命令
同步硬件时间 sed -i "2a\SYNC_HWCLOCK=yes" /etc/sysconfig/ntpd hwclock -w
ntpstat 检查通信,正常可以看到对方IP ntpq -p 查看与上层的状态 timedatectl 查看服务是否启动
三、简单总结下
1.重点就是ntp.conf的配置,只有这个配置好了,就没得问题,网上多查查或者参考我这个配置
2.容易出错的大坑就是同步时间报错什么 unsynchronised time server re-starting等。
不要慌,重新检查配置文件,然后先搞定server端,待server同步ok了,在修改client配置文件,同步server
3.还有一个坑就是延时,这个同步时间不是命令输入完成就ok了,非要等几分钟才行,只有耐心等待
附:参考链接
https://www.cnblogs.com/sonwnja/p/6767936.html
https://blog.51cto.com/sohudrgon/1598314
https://www.cnblogs.com/quchunhui/p/7658853.html