VKS Cluster の NTP 時刻同期に関するトラブルシューティング
search cancel

VKS Cluster の NTP 時刻同期に関するトラブルシューティング

book

Article ID: 423785

calendar_today

Updated On:

Products

VMware vSphere Kubernetes Service

Issue/Introduction

免責事項: これは英文の記事「NTP Trouble Shooting for VKS Cluster」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

VKS Clusterにおいて、Kubernetes(k8s)ノード間の時刻同期が不正確な場合、
証明書の有効期限切れ、ログの整合性不備、分散データベースの不整合など、予期しない重大なトラブルを引き起こす要因となります。
本KBでは、VKS Clusterのk8sノード上でNTPによる時刻ずれが生じた場合の確認方法および対応手順について解説します。

Note:  本KBにおいて VKS Supervisor に関するNTP時刻同期問題については対象外です。

次のコマンドを使用して現在のNTPサーバとの同期ステータスを確認します。

timedatectl status
#> System clock synchronized: no # <--- NTP サーバとの同期に失敗

Environment

vSphere Kubernetes Service

Resolution

時刻同期に問題がある場合、以下のステップに沿って問題の切り分けと修正を行ってください。

1. NTPクライアントの設定内容の確認

現在設定されているNTPサーバの設定を確認します。

# 設定されているNTPサーバの確認
grep server /etc/chrony.conf
# NTPサーバとの同期状態を確認
chronyc sources -v
#> ....
#> MS Name/IP address         Stratum Poll Reach LastRx Last sample
#> ===============================================================================
#> ^ <NTP_SERVER>                   2   6     0    58    +12us[  +18us] +/- 2085us

# 詳細なNTP同期情報
chronyc tracking

上記の出力例から下記のことがわかります。

  • Poll 列の値が "6":  現在のNTP同期のポーリング間隔は 2^6 = 64 秒
  • Reach 列の値が "0": 直近8回のポーリングにて全てが失敗

 

2. サービス状態の確認とリスタート

chronyd サービスの状態を確認し、リスタートで事象が解決するかどうか確認します。

systemctl status chronyd
systemctl restart chronyd

# もし chronyd の実行が失敗する場合、ログを確認
journalctl -r -u chronyd

 

3. UDP ネットワーク疎通の確認

NTPパケット(UDP 123)が双方向で送受信されているかを tcpdump で確認します。
パケットが観測されない場合でも、ポーリング間隔以上の時間は観測を継続してください。

tcpdump port 123
#> HH:MM:SS.ss IP <THIS_NODE>.xxx > <NTP_SERVER>.ntp: NTPv4, Client, length 48 # <-- 送信パケット
#> HH:MM:SS.ss IP <NTP_SERVER>.ntp > <THIS_NODE>.xxx: NTPv4, Server, length 48 # <-- 受信パケット

 

ケース1: NTP送信パケットのみ観測される場合

送信はできているがNTPサーバからの応答を受信できていません。ネットワーク経路(FW等)に問題がある可能性が高いです。

  • UDPに関するファイアウォールのルールを確認
  • NSX を使用している場合、分散ファイアウォールや Edge 側のトラフィックルールを確認

下記のネットワーク診断コマンドでネットワークの問題かどうか確認します。
Note: ICMP が禁止されている環境の場合、下記のコマンドの出力の結果は調査に使用できません。

# L3 ネットワーク疎通を確認
ping -c3 <NTP_SERVER>

# UDP 接続を確認
traceroute -U -p123 <NTP_SERVER>

UDP通信の疎通をクライアント側からのみで確認するのは困難です。
ネットワークの問題かどうか断定するには、NTPサーバでパケットキャプチャを取得する必要があります。

 

ケース2: 送信パケットと受信パケットの両方が観測できない場合

ポーリング間隔が経過してもNTPパケットが観測できない場合、 chronyd のログを調査してください。

journalctl -r -u chronyd

 

ケース3 : 送信パケット、受信パケット両方とも観測できている場合

UDP ネットワークの疎通は正常です。
時刻が同期されない場合は、サーバから返却される時刻情報の精度(Stratum)の問題や、大幅な時刻ズレによる同期拒否が疑われます。

journalctl -r -u chronyd

 

(Option) 緊急時の暫定対処

根本解決に時間を要し、即座に時刻を修正する必要がある場合は、各k8s node にSSHでログインして手動で設定します。

systemctl stop chronyd
# 例: 手動での時刻設定
date -s "2026-01-28 01:11:01"

Additional Information