在 GDC VM 上設定 NTP

本文說明如何在 Google Distributed Cloud (GDC) 氣隙虛擬機器 (VM) 上設定 NTP 伺服器。

依賴事件順序的系統需要一致的時鐘,才能準確記錄及偵錯。為確保時間標準化及連線系統同步處理,GDC VM 會使用網路時間通訊協定 (NTP) 確保時間準確度。如果沒有 NTP 設定,VM 的時鐘就難免會發生時間差,導致時間戳記不一致,進而中斷事件排序並妨礙疑難排解。

建立 VM 時,您可以選擇兩種映像檔來源,兩者都包含預先設定的 NTP 詳細資料:

  • GDC 提供的圖片
  • 自備 (BYO) 映像檔

如果您匯入的值為 prepareImage: false 的映像檔,或從 VM 刪除 NTP 網址,則必須使用 chrony 手動設定 NTP。這個工具會主動將系統時鐘與外部伺服器同步。如要進一步瞭解 chrony,請參閱 https://chrony-project.org/

本文適用於平台管理員或應用程式運算子群組的開發人員,他們會使用 GDC 提供的映像檔和自備 (BYO) 映像檔建立 VM。詳情請參閱 GDC 氣隙環境適用的目標對象說明文件

事前準備

設定 NTP 伺服器之前,請先驗證或安裝 gdcloud CLI。所有 Distributed Cloud 指令都使用 gdcloudkubectl CLI,且需要作業系統 (OS) 環境。

  • 檢查 CLI:執行 gdcloud version

  • 如果尚未安裝 CLI,請下載並安裝 gdcloud CLI

必要的 IAM 角色

如要取得設定 NTP 和管理 VM 設定所需的權限,請要求專案 IAM 管理員在 VM 所在的專案命名空間中授予您下列 IAM 角色:

  • 專案 VirtualMachine 管理員 (project-vm-admin):更新 VM 設定、修改執行個體中繼資料以進行 NTP 同步,以及重新啟動執行個體,在專案層級套用系統層級的變更

  • 專案檢視者 (project-viewer):擁有唯讀存取權,可檢查 VM 執行階段狀態、列出專案資源,以及稽核設定,但無法修改專案資料。

按照步驟驗證存取權。

為 VM 設定 NTP

請按照步驟,使用 chrony 為特定作業系統設定 NTP 伺服器詳細資料。

  1. 使用 ssh 連線至 VM:

    控制台

    1. 前往 GDC 控制台的「VM instances」(VM 執行個體) 頁面。

    2. 在要設定的執行個體上,按一下「SSH」SSH按鈕。

    gdcloud

    使用 gdcloud CLI 透過 SSH 連線至 VM 執行個體:

    gcloud compute instances ssh INSTANCE_NAME
    

    將您的 VM 執行個體名稱替換為 INSTANCE_NAME

  2. 使用 edit 指令前往 chrony 設定檔:

    Ubuntu

    sudo edit /etc/chrony/chrony.conf
    

    RHEL

    sudo edit /etc/chrony.conf
    

  3. chrony.conf 檔案中新增下列 NTP 網址:

    server ntp1.org.internal iburst
    server ntp2.org.internal iburst
    server ntp3.org.internal iburst
    server ntp4.org.internal iburst
    server ntp5.org.internal iburst
    server ntp6.org.internal iburst
    
  4. 重新啟動 chrony 服務:

    Ubuntu

    sudo systemctl restart chrony
    

    RHEL

    sudo systemctl restart chronyd
    

  5. 使用 chrony CLI 驗證設定:

    chronyc sources -v
    

    輸出看起來類似以下內容:

    210 Number of sources = 1
    MS Name/IP address         Stratum Poll Reach LastRx Last sample
    ===============================================================================
    ^* metadata.google.internal      2   7   377    98  -1343ns[-1588ns] +/-  396us
    

後續步驟