Externen NTP-Server konfigurieren

Auf dieser Seite wird beschrieben, wie Sie einen externen NTP-Server für eine Google Distributed Cloud (GDC) Air Gap-Appliance konfigurieren.

Diese Schritte sind nur erforderlich, wenn Sie das Gerät mit einer externen Zeitquelle synchronisieren möchten.

Hinweise

Wenn Sie die Appliance mit einem externen NTP-Server synchronisieren möchten, konfigurieren Sie das Gerät und installieren Sie die Software.

NTP-Relay konfigurieren

  1. Ermitteln Sie die IP-Adresse, die die GDC-Appliance ohne Internetverbindung für den Zugriff auf Ihren NTP-Server verwenden muss. Möglicherweise müssen Sie Ihre Firewallregeln anpassen, um den Traffic zuzulassen.

  2. Bearbeiten Sie mit der Stamm-kubeconfig die benutzerdefinierte Ressource ntprelay im Managementebenencluster und fügen Sie den Abschnitt upstreamServers hinzu.

    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
    

    Das resultierende YAML enthält einen aktualisierten .spec-Abschnitt mit der IP-Adresse, wie im folgenden Beispiel zu sehen ist:

    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. Prüfen Sie die Zeit auf jedem Knoten:

    Warten Sie drei Minuten, damit die Synchronisierung abgeschlossen werden kann, und führen Sie dann den folgenden Befehl im Steuerungsebenencluster mit der Root-kubeconfig aus:

    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
    

    In der Ausgabe wird die Zeit für jeden Knoten angezeigt, die mit der Zeit Ihres NTP-Servers übereinstimmt. Die Ausgabe sieht dann ungefähr so aus:

    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
    

Verbindungsprobleme beheben

Wenn die Zeit nicht übereinstimmt, führen Sie den folgenden Befehl im Steuerungsebenencluster mit der Root-kubeconfig aus, um die Verbindung zum NTP-Server zu debuggen:

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

Die Ausgabe einer funktionierenden Verbindung sieht so aus: Die IP-Adresse des externen Servers beginnt mit ^*. In den Daten für die Quelle (z. B. Remote address : 192.0.2.026) ist TX die Anzahl der gesendeten Pakete und RX die Anzahl der empfangenen Pakete. Wenn RX = 0 ist, deutet das auf ein Verbindungsproblem hin. Prüfen Sie, ob die NTP-Anfragen durch die Firewall gelangen:

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