Configurare un server NTP esterno

Questa pagina descrive come configurare un server NTP esterno per l'appliance isolata di Google Distributed Cloud (GDC).

Questi passaggi sono necessari solo se vuoi sincronizzare l'appliance con un'origine ora esterna.

Prima di iniziare

Per sincronizzare l'appliance con un server NTP esterno, configura il dispositivo e installa il software.

Configura il relay NTP

  1. Determina l'indirizzo IP che l'appliance air-gap GDC deve utilizzare per accedere al server NTP. Potresti dover modificare le regole firewall per consentire il traffico.

  2. Utilizzando il file kubeconfig radice, modifica la risorsa personalizzata ntprelay nel cluster del piano di gestione e aggiungi la sezione 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
    

    Il file YAML risultante ha una sezione .spec aggiornata che include l'IP, come mostrato nel seguente esempio:

    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. Verifica l'ora su ogni nodo:

    Attendi tre minuti per la sincronizzazione, quindi esegui il comando seguente nel cluster del control plane utilizzando kubeconfig root:

    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
    

    L'output mostra l'ora di ogni nodo, che corrisponde all'ora del server NTP. L'output è simile al seguente:

    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
    

Debug dei problemi di connettività

Se l'ora non corrisponde, esegui questo comando nel cluster del control plane utilizzando kubeconfig root per eseguire il debug della connettività al server 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

L'output di una connessione integra è simile al seguente. L'IP del server esterno inizia con ^*. Nei dati per l'origine (ad esempio Remote address : 192.0.2.026), TX è la quantità di pacchetti inviati e RX è il numero di pacchetti ricevuti. Se RX è 0, indica un problema di connettività. Controlla il firewall per verificare se le richieste NTP vengono elaborate:

  .-- 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