配置NTP服务

本文主要介绍如何为ECI Pod配置NTP服务。当您在部署应用时,如果需要Pod内的容器能与NTP服务进行时间同步,您可以参考本文进行配置。

配置说明

创建ECI Pod时,可以为Pod添加k8s.aliyun.com/eci-ntp-server的Annotation来指定NTP服务器的地址,使得Pod内的容器能与NTP服务进行时间同步。

重要
  • Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在spec>template>metadata下。

  • 仅支持在创建ECI Pod时添加ECI相关Annotation来生效ECI功能,更新ECI Pod时添加或者修改ECI相关Annotation均不会生效。

配置示例

  1. 创建配置NTP服务的应用。

    kubectl create -f set-ntp.yaml

    set-ntp.yaml的内容示例如下:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: test-ntp
      labels:
        app: test
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          name: test-ntp
          labels:
            app: nginx
            alibabacloud.com/eci: "true" 
          annotations:
            k8s.aliyun.com/eci-ntp-server: 100.100.XX.XX  # 设置您的NTP服务器的IP地址
        spec:
          containers:
          - name: nginx
            image: registry.cn-shanghai.aliyuncs.com/eci_open/centos:7
            ports:
            - containerPort: 80
            command: ["/bin/sh","-c","sleep 3600" ]
  2. 登录到容器,验证NTP服务是否设置成功。

    1. 获取Pod信息。

      kubectl get pod

      预期返回:

      NAME                        READY   STATUS    RESTARTS   AGE
      test-ntp-599d5ff9f5-9kb56   1/1     Running   0          3m59s
    2. 进入容器。

      kubectl exec -it test-ntp-599d5ff9f5-9kb56 -- bash
    3. 查询容器的时间来源。

      chronyc sources
      说明

      如果没有安装chrony,可执行yum -y install chrony进行安装。

      如果返回了NTP服务器的IP地址,则表示设置成功。返回示例如下:

      210 Number of sources = 1
      MS Name/IP address         Stratum Poll Reach LastRx Last                            sample
      ===============================================================================
      ^* 100.100.XX.XX                    2           6     377     35       +40us[ +135us] +/-   14ms