בדף הזה מוסבר איך להגדיר שרת NTP חיצוני למכשיר Google Distributed Cloud (GDC) עם בידוד פיזי.
השלבים האלה נדרשים רק אם רוצים לסנכרן את המכשיר עם מקור זמן חיצוני.
לפני שמתחילים
כדי לסנכרן את המכשיר עם שרת NTP חיצוני, צריך להגדיר את המכשיר ולהתקין תוכנה.
הגדרת ממסר NTP
קובעים את כתובת ה-IP שצריכה להיות למכשיר GDC עם air gap כדי לגשת לשרת ה-NTP. יכול להיות שתצטרכו לשנות את הכללים של חומת האש כדי לאפשר את התעבורה.
באמצעות קובץ ה-kubeconfig של שורש, עורכים את
ntprelayCR באשכול של מישור הניהול ומוסיפים את הקטע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קובץ ה-YAML שמתקבל כולל קטע
.specמעודכן, שכולל את כתובת ה-IP, כמו בדוגמה הבאה: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בודקים את השעה בכל צומת:
מחכים שלוש דקות כדי לאפשר סנכרון, ואז מריצים את הפקודה הבאה באשכול של מישור הבקרה באמצעות 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בפלט מוצגת השעה של כל צומת, שזהה לשעה של שרת ה-NTP. הפלט אמור להיראות כך:
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
ניפוי באגים בבעיות בקישוריות
אם השעה לא תואמת, מריצים את הפקודה הבאה באשכול של מישור הבקרה באמצעות קובץ ה-kubeconfig הבסיסי כדי לנפות באגים בקישוריות לשרת 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
הפלט של חיבור תקין אמור להיראות כך. כתובת ה-IP של השרת החיצוני מתחילה ב-^*. בנתונים של המקור (למשל, Remote address : 192.0.2.026), TX היא כמות החבילות שנשלחו ו-RX הוא מספר החבילות שהתקבלו. אם הערך של RX הוא 0, זה מצביע על בעיה בקישוריות. בודקים את חומת האש כדי לראות אם בקשות ה-NTP עוברות דרכה:
.-- 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