众客华禹

 找回密码
立即注册

QQ登录

只需一步,快速开始

查看: 231|回复: 0

k8s集群时间同步

[复制链接]

70

主题

70

帖子

378

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
378
发表于 2022-3-23 16:38:44 | 显示全部楼层 |阅读模式
背景:使用dke安装的k8s中,ntp服务异常,不会自动同步时间,项目中的解决方法是每台服务器启动一个chrony服务,集群内部配置时间同步,由第一台master节点去同步阿里云的时间服务器的时间,集群内部其他节点同步第一台master节点的时间。
一、安装部署时间同步
1、安装服务,并加入自启动
  1. yum -y install chrony
  2. systemctl enable chronyd
  3. systemctl start chronyd
复制代码
2、第一台master节点配置
Chrony的配置文件是/etc/chrony.conf
  1. # 使用 pool.ntp.org 项目中的公共服务器。以server开,理论上想添加多少时间服务器都可以。
  2. # Use public servers from the pool.ntp.org project.
  3. # Please consider joining the pool
  4. ###默认是国外的,访问起来很慢
  5. server 0.centos.pool.ntp.org iburst         ###此处修改为阿里云的时间同步服务器   server ntp1.aliyun.com iburst
  6. server 1.centos.pool.ntp.org iburst         ###此处修改为阿里云的时间同步服务器   server ntp2.aliyun.com iburst

  7. # 根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,在系统重启后为系统做出最佳时间补偿调整。
  8. # Record the rate at which the system clock gains/losses time.
  9. driftfile /var/lib/chrony/drift

  10. # 如果系统时钟的偏移量大于1秒,则允许系统时钟在前三次更新中步进。
  11. # Allow the system clock to be stepped in the first three updates if its offset is larger than 1 second.
  12. makestep 1.0 3

  13. # 启用实时时钟(RTC)的内核同步。
  14. # Enable kernel synchronization of the real-time clock (RTC).
  15. rtcsync

  16. # 通过使用 hwtimestamp 指令启用硬件时间戳
  17. # Enable hardware timestamping on all interfaces that support it.
  18. #hwtimestamp *

  19. # Increase the minimum number of selectable sources required to adjust the system clock.
  20. #minsources 2

  21. # 指定 NTP 客户端地址,以允许或拒绝连接到扮演时钟服务器的机器
  22. # Allow NTP client access from local network.
  23. #allow 192.168.0.0/16                            ####第一台master节点需要把这个注释解除,修改为客户端网段:  allow 172.24.169.0/24 或者 allow all

  24. # Serve time even if not synchronized to a time source.
  25. #local stratum 10

  26. # 指定包含 NTP 身份验证密钥的文件。
  27. # Specify file containing keys for NTP authentication.
  28. #keyfile /etc/chrony.keys

  29. # 指定日志文件的目录。
  30. # Specify directory for log files.
  31. logdir /var/log/chrony

  32. # 选择日志文件要记录的信息。
  33. # Select which information is logged.
  34. #log measurements statistics tracking
复制代码
3、其他节点配置为同步第一台mater的时间
  1. /etc/chrony.conf

  2. # 使用 pool.ntp.org 项目中的公共服务器。以server开,理论上想添加多少时间服务器都可以。
  3. # Use public servers from the pool.ntp.org project.
  4. # Please consider joining the pool
  5. server 172.24.169.96 iburst                     ####此处修改为第一台master节点的ip地址
复制代码
4、重启服务
  1. systemctl restart chronyd
复制代码
5、查看时间同步状态
  1. timedatectl status
复制代码
6、开启网络时间同步,第一台master可以执行,也可以忽略
  1. timedatectl set-ntp true
复制代码
二、常用的chrony命令
## 查看 ntp_servers
  1. [root@baidu-node98-ai ~]# chronyc sources -v
  2. 210 Number of sources = 2

  3.   .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
  4. / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
  5. | /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
  6. ||                                                 .- xxxx [ yyyy ] +/- zzzz
  7. ||      Reachability register (octal) -.           |  xxxx = adjusted offset,
  8. ||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
  9. ||                                \     |          |  zzzz = estimated error.
  10. ||                                 |    |           \
  11. MS Name/IP address         Stratum Poll Reach LastRx Last sample               
  12. ===============================================================================
  13. ^+ baidu-node96-ai.com           3   6   377    35   -363us[ -365us] +/-   20ms     
  14. ^* baidu-node97-ai.com           3   6   377    26   +372us[ +370us] +/-   20ms     
  15. ^? baidu-node93-ai.com           3   6   377    26   +372us[ +300us] +/-   20ms     

  16. M  这表示信号源的模式。^表示服务器,=表示对等方,#表示本地连接的参考时钟
  17. S  此列指示源的状态:
  18.     ^+表示可接受的信号源,与选定的信号源组合在一起
  19.     ^*表示从该服务器进行了时钟同步
  20.     ^?则说明没有从该服务器同步时钟,有可能网络不通,不可达
  21.     ^-表示被合并算法排除的可接受源
  22.     ^x表示chronyd认为是虚假行情的时钟(即,其时间与大多数其他来源不一致)
  23.     ^~表示时间似乎具有太多可变性的来源
复制代码
##查看 ntp_servers 状态
  1. [root@baidu-node98-ai ~]# chronyc sourcestats -v
  2. 210 Number of sources = 2
  3.                              .- Number of sample points in measurement set.
  4.                             /    .- Number of residual runs with same sign.
  5.                            |    /    .- Length of measurement set (time).
  6.                            |   |    /      .- Est. clock freq error (ppm).
  7.                            |   |   |      /           .- Est. error in freq.
  8.                            |   |   |     |           /         .- Est. offset.
  9.                            |   |   |     |          |          |   On the -.
  10.                            |   |   |     |          |          |   samples. \
  11.                            |   |   |     |          |          |             |
  12. Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev           ####Offset表示与服务器同步了多长时间
  13. ==============================================================================
  14. baidu-node96-ai.com         7   4   389     -0.051      0.063   -365us  2805ns
  15. baidu-node97-ai.com        12  10   711     +0.010      0.019   +368us  3112ns
复制代码
##查看 ntp_servers 是否在线
  1. [root@baidu-node98-ai ~]# chronyc activity -v
  2. 200 OK
  3. 2 sources online                               ##表示两个时间同步服务器在线
  4. 0 sources offline
  5. 0 sources doing burst (return to online)
  6. 0 sources doing burst (return to offline)
  7. 0 sources with unknown address
复制代码
##查看 ntp 详细信息
  1. [root@baidu-node98-ai ~]# chronyc tracking -v
  2. Reference ID    : AC18A961 (baidu-node97-ai.com)
  3. Stratum         : 4
  4. Ref time (UTC)  : Wed Mar 23 07:16:09 2022
  5. System time     : 0.000019015 seconds slow of NTP time
  6. Last offset     : -0.000001610 seconds
  7. RMS offset      : 0.000022228 seconds
  8. Frequency       : 11.035 ppm fast
  9. Residual freq   : -0.000 ppm
  10. Skew            : 0.020 ppm
  11. Root delay      : 0.035532806 seconds
  12. Root dispersion : 0.001703597 seconds
  13. Update interval : 64.9 seconds
  14. Leap status     : Normal
复制代码
##强制同步下系统时钟
  1. [root@baidu-node98-ai ~]# chronyc -a makestep
复制代码
三、timedatectl 命令
##查看日期时间、时区及 NTP 状态
  1. [root@baidu-node98-ai ~]# timedatectl
  2.       Local time: 三 2022-03-23 15:26:41 CST
  3.   Universal time: 三 2022-03-23 07:26:41 UTC
  4.         RTC time: 三 2022-03-23 07:26:41
  5.        Time zone: Asia/Shanghai (CST, +0800)
  6.      NTP enabled: yes                        
  7. NTP synchronized: yes                 
  8. RTC in local TZ: no
  9.       DST active: n/a
复制代码
##查看时区列表
  1. timedatectl list-timezones
  2. timedatectl list-timezones |  grep  -E "Asia/S.*"
复制代码
##修改时区为上海时区
  1. timedatectl set-timezone Asia/Shanghai
复制代码
##修改日期时间(可以只修改其中一个)
  1. timedatectl set-time "2022-03-23 15:50:20"
复制代码
##开启 NTP
  1. timedatectl set-ntp true/flase
复制代码
四、系统时钟与硬件时钟之间同步
##查看时间
  1. ##查看系统时间
  2. [root@baidu-node98-ai ~]# date
  3. 2022年 03月 23日 星期三 15:30:37 CST
  4. ##查看硬件时间
  5. [root@baidu-node98-ai ~]# hwclock
  6. 2022年03月23日 星期三 15时30分36秒  -0.516669 秒
复制代码
##设置硬件时钟
  1. hwclock -w
复制代码
##设置系统时间
  1. hwclock -s
复制代码
##修改配置文件方式
  1. vim /etc/sysconfig/ntpd
  2. 将系统时间写入BIOS,与 hwclock -w 效果相同
  3. SYNC_HWCLOCK=yes
  4. ##将硬件时钟调整为与系统时钟一致
  5. [root@localhost ~]# timedatectl set-local-rtc 1
  6. 或者
  7. [root@localhost ~]# hwclock --systohc --localtime
复制代码
##将日期写入CMOS
  1. [root@localhost ~]# clock –w
复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|众客华禹 ( 蜀ICP备2021016660号 )

GMT+8, 2022-5-17 09:38 , Processed in 0.047617 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表