在某些环境下,我们需要ntp服务器,同时我们可能还需要配置chronyd来同步我们的节点时间,而在k8s的环境中,服务器的时间是需要同步的,并且在一些警报中是会检测,为了解决这个问题,在一些局域网内没有互联网的情况下,就需要手动配置
ntp
通过yum install 方式来安装ntp服务,而后我们配置一个server 192.168.5.26 iburst
prefer:优先使用该时间服务器burst:当一个运程NTP服务器可用时,向它发送一系列的并发包进行检测。iburst:当一个运程NTP服务器不可用时,向它发送一系列的并发包进行检测。
“iburst” 选项作用是如果在一个标准的轮询间隔内没有应答,客户端会发送一定数量的包(八个包而不是通常的一个)给 NTP 服务器。如果在短时间内呼叫 NTP 服务器几次,没有出现可辨识的应答,那么本地时间将不会变化
通常情况,大多数只是在没有公网环境的情况下配置一个内网的,小局域网内的一个环境使用
/etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server ntp1.aliyun.com prefer
server 192.168.5.26 iburst
server ntp.aliyun.com prefer
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
#server ntp.ubuntu.com
server 127.127.1.0
fudge 127.127.1.0 stratum 5
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
restrict 17.168.0.0 mask 255.255.255.0 nomodify
restrict 127.0.0.1
restrict ::1
#https://www.jianshu.com/p/e5e486c8e365
而后开启即可
systemctl start ntpd
systemctl enable ntpd
chronyd
Chrony是一个开源的自由软件,如果在chrony配置文件中指定了ntp服务器的地址,那么chrony就是一台客户端,会去同步ntp服务器的时间,如果在chrony配置了允许某些客户端来向自己同步时间,则chrony也充当了一台服务器,所以,安装了chrony即可充当客户端也可以充当服务端。
Chrony有两个核心组件,分别是:chronyd:是守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。chronyc:提供一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。
ntpd同步时间某些时候需要长时间来同步时间,在Centos7中的chrony也实现时间同步hrony兼容ntpd监听在udp123端口上,另外还监听在udp的323端口上。
我们通过yum install -y chrony
进行安装通常k8s在时间同步上是使用的是chronyd来判断的,NTP synchronized
,如下
~ # timedatectl
Local time: 五 2021-10-29 15:05:00 CST
Universal time: 五 2021-10-29 07:05:00 UTC
RTC time: 五 2021-10-29 07:05:09
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
我们停掉ntpd
systemctl stop ntpd
cp /etc/chrony.conf{,.bak}
systemctl stop ntpd
配置一个基于阿里云ntp.aliyun.com的chrony的地址,我们假设上面的ntp就是chrond要使用的服务器,如下
cp /etc/chrony.conf{,.bak}
cat > /etc/chrony.conf << EOF
server 192.168.5.26
server ntp1.aliyun.com
server ntp2.aliyun.com
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony
EOF
systemctl enable --now chronyd
systemctl restart chronyd
chronyc activity
chronyc sources
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
而后配置开机启动,兵重启
systemctl enable --now chronyd
systemctl restart chronyd
chronyc activity
chronyc sources
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
查看她的状态
[root@linuxea.com ~]# chronyc activity
200 OK
1 sources online
0 sources offline
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address
[root@linuxea.com ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 17.168.0.165 3 6 3 12 -4527us[-4527us] +/- 51ms
[root@linuxea.com ~]# chronyc sources -v
210 Number of sources = 1
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| / '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| | | zzzz = estimated error.
|| | |
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 17.168.0.165 3 6 7 14 -5642ns[ -33.3s] +/- 62ms
[root@linuxea.com ~]# chronyc tracking
Reference ID : 11A800A5 (17.168.0.165)
Stratum : 4
Ref time (UTC) : Fri Oct 29 07:09:14 2021
System time : 0.000000000 seconds slow of NTP time
Last offset : -33.251636505 seconds
RMS offset : 33.251636505 seconds
Frequency : 10.242 ppm slow
Residual freq : -0.000 ppm
Skew : 63.129 ppm
Root delay : 0.048810445 seconds
Root dispersion : 0.042059928 seconds
Update interval : 0.0 seconds
Leap status : Normal
最后我们在观察,这里的NTP synchronized: 已经是
yes`状态
[root@linuxea.com ~]# timedatectl
Local time: 五 2021-10-29 15:10:56 CST
Universal time: 五 2021-10-29 07:10:56 UTC
RTC time: 五 2021-10-29 07:10:32
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
参考
Chrony-替换你的NTP服务