云原生之使用docker部署NTP时间服务器

简介: 云原生之使用docker部署NTP时间服务器

一、chrony介绍

chrony是网络时间协议 (NTP) 的通用实现。它可以将系统时钟与 NTP 服务器、参考时钟(例如 GPS 接收器)以及使用手表和键盘的手动输入同步。

二、容器镜像介绍

默认情况下,此容器使用 CloudFlare 的时间服务器 (time.cloudflare.com)。如果您想使用一个或多个不同的 NTP 服务器,您可以向该容器传递一个NTP_SERVERS 环境变量。
env=NTP_SERVERS="

三、检查本地docker状态


[root@jeven docs]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2022-12-02 04:34:05 CST; 12h ago
     Docs: https://docs.docker.com
 Main PID: 10004 (dockerd)
    Tasks: 77
   Memory: 2.0G
   CGroup: /system.slice/docker.service
           ├─10004 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
           ├─12091 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8190 -container-ip 172.17.0.2 -container-port 8090
           ├─12097 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8190 -container-ip 172.17.0.2 -container-port 8090
           ├─12109 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8016 -container-ip 172.31.0.2 -container-port 80
           ├─12115 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8016 -container-ip 172.31.0.2 -container-port 80
           ├─12127 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 453 -container-ip 172.31.0.2 -container-port 443
           ├─12133 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 453 -container-ip 172.31.0.2 -container-port 443
           ├─14964 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 3300 -container-ip 192.168.64.2 -container-port 3300
           ├─14970 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 3300 -container-ip 192.168.64.2 -container-port 3300
           ├─43254 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 7890 -container-ip 172.17.0.3 -container-port 8000
           └─43261 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 7890 -container-ip 172.17.0.3 -container-port 8000

Dec 02 15:45:55 jeven dockerd[10004]: time="2022-12-02T15:45:55.364855562+08:00" level=info msg="ignoring event" container=59ece461228f7c0...skDelete"
Dec 02 15:45:56 jeven dockerd[10004]: time="2022-12-02T15:45:56.582197016+08:00" level=info msg="ignoring event" container=59ece461228f7c0...skDelete"
Dec 02 15:45:58 jeven dockerd[10004]: time="2022-12-02T15:45:58.010358602+08:00" level=info msg="ignoring event" container=59ece461228f7c0...skDelete"
Dec 02 15:45:59 jeven dockerd[10004]: time="2022-12-02T15:45:59.822979906+08:00" level=info msg="ignoring event" container=59ece461228f7c0...skDelete"
Dec 02 15:46:02 jeven dockerd[10004]: time="2022-12-02T15:46:02.451854240+08:00" level=info msg="ignoring event" container=59ece461228f7c0...skDelete"
Dec 02 15:46:06 jeven dockerd[10004]: time="2022-12-02T15:46:06.662259690+08:00" level=info msg="ignoring event" container=59ece461228f7c0...skDelete"
Dec 02 15:46:14 jeven dockerd[10004]: time="2022-12-02T15:46:14.083579709+08:00" level=info msg="ignoring event" container=59ece461228f7c0...skDelete"
Dec 02 15:46:28 jeven dockerd[10004]: time="2022-12-02T15:46:28.185437247+08:00" level=info msg="ignoring event" container=59ece461228f7c0...skDelete"
Dec 02 15:46:55 jeven dockerd[10004]: time="2022-12-02T15:46:55.193222004+08:00" level=info msg="ignoring event" container=59ece461228f7c0...skDelete"
Dec 02 15:47:50 jeven dockerd[10004]: time="2022-12-02T15:47:50.424840407+08:00" level=info msg="ignoring event" container=c16d42dd96e202a...skDelete"
Hint: Some lines were ellipsized, use -l to show in full.

四、下载ntp镜像

[root@jeven ~]# docker pull cturra/ntp
Using default tag: latest
latest: Pulling from cturra/ntp
59bf1c3509f3: Already exists 
45b0d9aa13f5: Pull complete 
7b02bd2e0aba: Pull complete 
Digest: sha256:b4cf0bb0aba53b4438605ef30913f1fbf69d0f5ad5d3781ead43353cd64d5b92
Status: Downloaded newer image for cturra/ntp:latest
docker.io/cturra/ntp:latest


五、部署ntp服务器

1.创建ntp容器


docker run -it --name=ntp                           \
              --restart=always                     \
              --detach                             \
              --publish=123:123/udp                \
              --read-only                          \
              -e NTP_SERVERS="ntp.aliyun.com"    \
              --tmpfs=/etc/chrony:rw,mode=1750     \
              --tmpfs=/run/chrony:rw,mode=1750     \
              --tmpfs=/var/lib/chrony:rw,mode=1750 \
              cturra/ntp 

image.png

2.查看ntp容器状态

[root@jeven ~]# docker ps
CONTAINER ID   IMAGE                                 COMMAND                  CREATED             STATUS                             PORTS                                                                          NAMES
58091922ab8d   cturra/ntp                            "/bin/sh /opt/startu…"   20 seconds ago      Up 20 seconds (health: starting)   0.0.0.0:123->123/udp, :::123->123/udp                                          ntp

六、检查ntp服务器的时间源

检测为阿里的时间源,ntp服务器配置正确
[root@jeven ~]# docker exec ntp chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 203.107.6.88                  2   6   377    13   +532us[+1324us] +/-   21ms

七、客户端测试

1.客户端查看chronyd服务状态

[root@server001 ~]# systemctl status chronyd
● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2022-12-02 04:22:11 EST; 3min 27s ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
  Process: 4479 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: 4476 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 4478 (chronyd)
    Tasks: 1
   Memory: 304.0K
   CGroup: /system.slice/chronyd.service
           └─4478 /usr/sbin/chronyd

Dec 02 04:22:11 server001 systemd[1]: Starting NTP client/server...
Dec 02 04:22:11 server001 chronyd[4478]: chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SECHASH +SIGND +ASY... +DEBUG)
Dec 02 04:22:11 server001 chronyd[4478]: Frequency -12.895 +/- 0.065 ppm read from /var/lib/chrony/drift
Dec 02 04:22:11 server001 systemd[1]: Started NTP client/server.
Dec 02 04:22:15 server001 chronyd[4478]: Selected source 192.168.3.166
Hint: Some lines were ellipsized, use -l to show in full.


2.修改配置文件

[root@server001 ~]# grep iburst  /etc/chrony.conf
server 192.168.3.166 iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

3.查看时间同步状态

[root@server001 ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* 192.168.3.166                 3   6   377    19   -233us[-1027us] +/-   26ms

相关文章
|
12月前
|
弹性计算 人工智能 前端开发
在阿里云ECS上部署n8n自动化工作流:U2实例实战
本文介绍如何在阿里云ECS的u2i/u2a实例上部署开源工作流自动化平台n8n,利用Docker快速搭建并配置定时任务,实现如每日抓取MuleRun新AI Agent并推送通知等自动化流程。内容涵盖环境准备、安全组设置、实战案例与优化建议,助力高效构建低维护成本的自动化系统。
2428 5
|
Java Linux Apache
在CentOS服务器上编译并部署NiFi源码
部署Apache NiFi在CentOS上是一个涉及细节的过程,需要注意Java环境、源码编译、配置调整等多个方面。遵循上述步骤,可以在CentOS服务器上成功部署和配置Apache NiFi,从而高效地处理和分发数据。
373 17
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
890 2
|
弹性计算 安全 Linux
使用阿里云服务器安装Z-Blog博客网站流程,新手一键部署教程
本教程教你如何在阿里云99元服务器上,通过宝塔Linux面板一键部署Z-Blog博客。基于CentOS 7.9系统,从远程连接、安装宝塔面板、开放端口到部署Z-Blog全流程详解,操作简单,新手也能轻松搭建个人博客网站。
1342 13
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
1034 0
监控 安全 Linux
710 0
|
监控 Java Linux
Apache NiFi项目的编译与部署于CentOS服务器
总而言之,Apache NiFi的编译和部署虽然涉及多个步骤,但这些操作步骤简明扼要,即使是不太熟悉Java或Maven的用户也能跟随指南完成。通过遵循上述步骤,您将能够在CentOS服务器上成功部署Apache NiFi,为您的数据流处理任务建立一个功能强大的平台。
640 16
|
资源调度 负载均衡 JavaScript
使用PM2工具部署Vue.js应用于服务器
以上步骤完成之后,你就成功利⽤ PM⼆工具将 Vuejs 应⽰程序部署至服 务 器,并且配合反向代理实现了高效稳定访问及负载均衡功能。
662 0

热门文章

最新文章