Configurer un serveur NTP externe

Cette page explique comment configurer un serveur NTP externe pour l'appliance Google Distributed Cloud (GDC) isolée.

Ces étapes ne sont nécessaires que si vous souhaitez synchroniser l'appliance avec une source de temps externe.

Avant de commencer

Pour synchroniser l'appliance avec un serveur NTP externe, configurez l'appareil et installez le logiciel.

Configurer le relais NTP

  1. Déterminez l'adresse IP que l'appliance GDC isolée doit utiliser pour accéder à votre serveur NTP. Vous devrez peut-être ajuster les règles de votre pare-feu pour autoriser le trafic.

  2. À l'aide du fichier kubeconfig racine, modifiez le CR ntprelay dans le cluster du plan de gestion et ajoutez la section upstreamServers.

    kubectl edit ntprelay bi-ntp-relay -n gpc-system
    ntprelay.system.private.gdc.goog/bi-ntp-relay edited
    kubectl get ntprelay bi-ntp-relay -n gpc-system -oyaml
    

    Le fichier YAML obtenu comporte une section .spec mise à jour qui inclut l'adresse IP, comme indiqué dans l'exemple suivant :

    apiVersion: system.private.gdc.goog/v1alpha1
    kind: NTPRelay
    metadata:
      creationTimestamp: "2025-05-16T08:44:21Z"
      generation: 2
      name: bi-ntp-relay
      namespace: gpc-system
      resourceVersion: "10871409"
      uid: 6cde8e65-791c-4bc6-9a8b-d5c9bf103f8b
    spec:
      upstreamServers:
      - 192.0.2.030
    
  3. Vérifiez l'heure sur chaque nœud :

    Attendez trois minutes pour laisser le temps à la synchronisation, puis exécutez la commande suivante dans le cluster du plan de contrôle à l'aide du fichier kubeconfig racine :

    kubectl get pods -l app.kubernetes.io/name=ntp -n ntp-system -o name | xargs -P 0 -I {} kubectl exec {} -n ntp-system -- date; echo
    

    Le résultat affiche l'heure de chaque nœud, qui correspond à celle de votre serveur NTP. La sortie ressemble à ceci :

    Defaulted container "ntp-image" out of: ntp-image, ntp-node-exporter
    Defaulted container "ntp-image" out of: ntp-image, ntp-node-exporter
    Defaulted container "ntp-image" out of: ntp-image, ntp-node-exporter
    Thu Nov  6 19:39:34 UTC 2025
    Thu Nov  6 19:39:34 UTC 2025
    Thu Nov  6 19:39:34 UTC 2025
    

Déboguer les problèmes de connectivité

Si l'heure ne correspond pas, exécutez la commande suivante dans le cluster du plan de contrôle à l'aide du fichier kubeconfig racine pour déboguer la connectivité au serveur NTP :

kubectl get pods -l app.kubernetes.io/name=ntp -n ntp-system -o name | xargs -I {} kubectl exec {} -n ntp-system -- sh -c "chronyc sources -v; echo; chronyc ntpdata"; echo

Le résultat d'une connexion opérationnelle ressemble à ce qui suit. L'adresse IP du serveur externe commence par ^*. Dans les données de la source (par exemple, Remote address : 192.0.2.026), TX correspond au nombre de paquets envoyés et RX au nombre de paquets reçus. Si RX est défini sur 0, cela indique un problème de connectivité. Vérifiez votre pare-feu pour voir si les requêtes NTP sont transmises :

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| /             'x' = may be in error, '~' = too variable, '?' = unusable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.0.2.026                   1   6    17    43   +286ns[  +36us] +/- 1160us
=? 192.0.2.029                 0   6     0     -     +0ns[   +0ns] +/-    0ns
=? 192.0.2.051                 0   6     0     -     +0ns[   +0ns] +/-    0ns
=? 192.0.2.059            0   6     0     -     +0ns[   +0ns] +/-    0ns

Remote address  : 192.0.2.026 (ACC03AF1)
Remote port     : 123
Local address   : 192.0.2.029 (0AA800D5)
Leap status     : Normal
Version         : 4
Mode            : Symmetric passive
Stratum         : 2
Poll interval   : 10 (1024 seconds)
Precision       : -25 (0.000000030 seconds)
Root delay      : 0.000381 seconds
Root dispersion : 0.000397 seconds
Reference ID    : ACC03BDF ()
Reference time  : Thu Nov 06 19:36:31 2025
Offset          : -0.000002443 seconds
Peer delay      : 0.000202604 seconds
Peer dispersion : 0.000000053 seconds
Response time   : 0.000097758 seconds
Jitter asymmetry: -0.37
NTP tests       : 111 111 1111
Interleaved     : No
Authenticated   : No
TX timestamping : Daemon
RX timestamping : Kernel
Total TX        : 67
Total RX        : 67
Total valid RX  : 67
Total good RX   : 67