配置NTP服务
更新时间:2025-02-27
在时间敏感的业务场景,使用BCI部署容器应用时,您可以配置NTP服务来确保Pod内容器的时间同步准确,从而规避因时间不准确导致的问题,保证数据准确性和业务正常运行。
配置说明
创建BCI Pod时,可以为Pod添加bci.virtual-kubelet.io/bci-ntp-server
的Annotation来指定NTP服务器的地址,使得Pod内的容器能与NTP服务进行时间同步,从而保证时间准确性。
Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在spec>template>metadata下。
仅支持在创建BCI Pod时添加BCI相关Annotation来生效BCI功能,更新BCI Pod时添加或者修改BCI相关Annotation均不会生效。
Annotation
bci.virtual-kubelet.io/bci-ntp-server
对应的值,只支持指定一个ip
配置示例
- 创建配置NTP服务的应用。
Shell
1kubectl create -f set-ntp.yaml
yaml内容示例如下:
YAML
1apiVersion: apps/v1
2kind: Deployment
3metadata:
4 labels:
5 app: centos6-vk
6 name: centos6-vk
7 namespace: default
8spec:
9 replicas: 1
10 selector:
11 matchLabels:
12 app: centos6-vk
13 template:
14 metadata:
15 annotations:
16 bci.virtual-kubelet.io/bci-ntp-server: "10.0.xx.xx" # 指定NTP服务器的IP地址
17 labels:
18 app: centos6-vk
19 name: centos6-vk
20 spec:
21 containers:
22 - command:
23 - /bin/sh
24 - -c
25 - sleep 3600000
26 image: registry.baidubce.com/glen-centos/centos:centos6
27 imagePullPolicy: Always
28 name: centos-test
29 resources:
30 limits:
31 cpu: 250m
32 memory: 512Mi
33 nodeSelector:
34 type: virtual-kubelet
35 restartPolicy: Always
36 tolerations:
37 - effect: NoSchedule
38 key: virtual-kubelet.io/provider
39 operator: Equal
40 value: baidu
- 时间同步以sidecar的形式集成在了提交的pod内,该sidecar对用户不可见,需要登录pod所在的机器查看
Shell
1kubectl exec -it ${bci-podname} -c ntp-sidecar -- sh
- 查询容器的时间来源
Shell
1sh-4.2# chronyc sources
输出结果:
Shell
1210 Number of sources = 1
2MS Name/IP address Stratum Poll Reach LastRx Last sample
3===============================================================================
4^* 10.0.xx.xx 10 6 37 38 +517ns[ +221us] +/- 205us