免責事項: これは英文の記事「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 サーバとの同期に失敗
vSphere Kubernetes Service
時刻同期に問題がある場合、以下のステップに沿って問題の切り分けと修正を行ってください。
現在設定されている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
上記の出力例から下記のことがわかります。
chronyd サービスの状態を確認し、リスタートで事象が解決するかどうか確認します。
systemctl status chronyd systemctl restart chronyd
# もし chronyd の実行が失敗する場合、ログを確認
journalctl -r -u chronyd
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 # <-- 受信パケット
送信はできているがNTPサーバからの応答を受信できていません。ネットワーク経路(FW等)に問題がある可能性が高いです。
下記のネットワーク診断コマンドでネットワークの問題かどうか確認します。
Note: ICMP が禁止されている環境の場合、下記のコマンドの出力の結果は調査に使用できません。
# L3 ネットワーク疎通を確認
ping -c3 <NTP_SERVER>
# UDP 接続を確認
traceroute -U -p123 <NTP_SERVER>
UDP通信の疎通をクライアント側からのみで確認するのは困難です。
ネットワークの問題かどうか断定するには、NTPサーバでパケットキャプチャを取得する必要があります。
ポーリング間隔が経過してもNTPパケットが観測できない場合、 chronyd のログを調査してください。
journalctl -r -u chronyd
UDP ネットワークの疎通は正常です。
時刻が同期されない場合は、サーバから返却される時刻情報の精度(Stratum)の問題や、大幅な時刻ズレによる同期拒否が疑われます。
journalctl -r -u chronyd
根本解決に時間を要し、即座に時刻を修正する必要がある場合は、各k8s node にSSHでログインして手動で設定します。
systemctl stop chronyd
# 例: 手動での時刻設定
date -s "2026-01-28 01:11:01"