En esta página, se describe cómo configurar una reproducción de NTP externa para el dispositivo aislado de Google Distributed Cloud (GDC).
Estos pasos solo son necesarios si deseas sincronizar el dispositivo con la hora externa después de desconectarlo.
Antes de comenzar
Para sincronizar el dispositivo con un servidor NTP externo, completa los siguientes pasos:
Antes de comenzar, asegúrate de que solo haya un retransmisor NTP. Para verificarlo, ejecuta el siguiente comando en la máquina de arranque:
kubectl get ntprelay -AEl resultado se ve como en el siguiente ejemplo:
NAMESPACE NAME AGE gpc-system bi-ntp-relay 4d21h
Configura la retransmisión de NTP
Conecta el dispositivo de arranque al dispositivo de la aplicación y determina la dirección IP de la interfaz conectada:
ifconfig mgmt: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 198.18.0.30 netmask 255.255.255.224 broadcast 198.18.0.31 inet6 fe80::20c:29ff:fea8:fc35 prefixlen 64 scopeid 0x20<link> ...Edita el CR
ntprelaypara incluir la IP de administración del programa de arranque como la IP upstream.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 -oyamlEl resultado se ve como en el siguiente ejemplo: En este ejemplo, se cambia la dirección IP de
upstreamServers: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 la sincronización de NTP:
kubectl get pods -l app.kubernetes.io/name=ntp -n ntp-system -o name | xargs -I {} kubectl exec {} -n ntp-system -- chronyc sources -v; echoEl resultado luce de la siguiente manera:
.-- 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 .-- 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 37 2 +2ns[ +90us] +/- 84us =? 192.0.2.029 2 6 1 8 +368us[ +449us] +/- 3761us =? 192.0.2.051 0 6 1 - +0ns[ +0ns] +/- 0ns =? 192.0.2.059 2 6 1 8 +663us[ +744us] +/- 11ms .-- 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 37 29 -6ns[ -759us] +/- 92us =? 192.0.2.029 2 6 1 36 +334us[ -346us] +/- 3775us =? 192.0.2.051 2 6 1 35 -125us[ -813us] +/- 5839us =? 192.0.2.059 0 6 1 - +0ns[ +0ns] +/- 0nsVerifica si el
chronycen los pods de la NTP hace referencia a la IP agregada recientemente.kubectl exec -it -n ntp-system ntp2-84ddf7cd99-96vqn -- shEl resultado se ve como en el siguiente ejemplo:
Defaulted container "ntp-image" out of: ntp-image, ntp-node-exporter # chronyc tracking Reference ID : C612001E (198.18.0.30) Stratum : 2 Ref time (UTC) : Wed May 21 07:28:38 2025 System time : 0.000000005 seconds slow of NTP time Last offset : +0.000025645 seconds RMS offset : 0.000082131 seconds Frequency : 15.671 ppm slow Residual freq : +0.024 ppm Skew : 0.628 ppm Root delay : 0.000164273 seconds Root dispersion : 0.000180630 seconds Update interval : 64.8 seconds Leap status : Normal # exit