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
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.
Utilizzando il file kubeconfig radice, modifica la risorsa personalizzata
ntprelaynel cluster del piano di gestione e aggiungi la sezioneupstreamServers.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 -oyamlIl file YAML risultante ha una sezione
.specaggiornata 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.030Verifica 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; echoL'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