Tous les produits
Search
Centre de documentation

Elastic Container Instance:Configure the NTP service

Dernière mise à jour :Sep 21, 2026

Dans les applications sensibles au temps, la dérive de l'horloge des pods peut désordonner les horodatages des journaux, ce qui rend la corrélation des incidents peu fiable et provoque des incohérences de données dans les systèmes distribués. Pour éviter ces problèmes, ajoutez l'annotation k8s.aliyun.com/eci-ntp-server à votre pod Elastic Container Instance (ECI) afin de pointer les conteneurs vers un serveur NTP spécifique.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Les autorisations nécessaires pour créer des Deployments et des pods

  • L'adresse IP d'un serveur NTP accessible

Fonctionnement

Lorsque ECI crée un pod, il lit l'annotation k8s.aliyun.com/eci-ntp-server et configure tous les conteneurs du pod pour synchroniser leurs horloges avec le serveur NTP spécifié.

Les annotations ECI sont appliquées uniquement lors de la création du pod. L'ajout ou la modification d'annotations sur un pod en cours d'exécution n'a aucun effet.

Pour les Deployments, ajoutez l'annotation dans spec.template.metadata.annotations, et non dans metadata.annotations au niveau supérieur. ECI lit les annotations depuis le modèle de pod, et non depuis l'objet Deployment lui-même.

Configurer NTP pour un pod

  1. Créez un fichier YAML nommé set-ntp.yaml avec le contenu suivant. Remplacez 100.100.XX.XX par l'adresse IP de votre serveur NTP.

    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  # IP address of the NTP server
        spec:
          containers:
          - name: nginx
            image: registry.cn-shanghai.aliyuncs.com/eci_open/centos:7
            ports:
            - containerPort: 80
            command: ["/bin/sh","-c","sleep 3600"]
  2. Appliquez la configuration.

    kubectl create -f set-ntp.yaml

Vérifier la configuration NTP

  1. Récupérez le nom du pod.

    kubectl get pod

    Sortie attendue :

    NAME                        READY   STATUS    RESTARTS   AGE
    test-ntp-599d5ff9f5-9kb56   1/1     Running   0          3m59s
  2. Ouvrez un shell dans le conteneur.

    kubectl exec -it test-ntp-599d5ff9f5-9kb56 -- bash
  3. Vérifiez la source de synchronisation de l'heure.

    Si chrony n'est pas installé, exécutez d'abord yum -y install chrony .
    chronyc sources

    Une ligne commençant par ^* indique la source actuellement sélectionnée. Confirmez que l'adresse IP de votre serveur NTP apparaît sur cette ligne.

    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