自動更新

Container-Optimized OS 映像檔具有內建功能,可在發布時自動升級至新版本。啟用這項功能後,使用者執行個體就能隨時更新安全性修復和錯誤修正。

當 Container-Optimized OS 用於受管理服務 (例如 Google Kubernetes Engine、Cloud SQL 等) 時,受管理服務會負責為使用者更新 Container-Optimized OS 執行個體。因此,系統會預設停用這些裝置的自動更新功能。

如果使用者執行的工作負載對核心升級作業十分敏感,且需要受控的認證和推出作業,也應停用自動更新功能。詳情請參閱「停用自動更新」一節。

啟用或停用自動更新

在里程碑 117 及後續版本中,所有 Container-Optimized OS 映像檔的自動更新功能預設為停用。在 117 之前的里程碑中,這項功能預設為啟用。如要啟用或停用自動更新功能,請在新的執行個體、現有執行個體或專案中的所有執行個體上設定 cos-update-strategy 中繼資料,如以下各節所述。

在新的執行個體上設定自動更新

建立新的執行個體,並啟用自動更新功能:

gcloud compute instances create INSTANCE_NAME \
   --metadata cos-update-strategy=update_enabled

建立新的執行個體,並停用自動更新功能:

gcloud compute instances create INSTANCE_NAME \
   --metadata cos-update-strategy=update_disabled

設定現有執行個體的自動更新

為現有執行個體啟用自動更新功能:

gcloud compute instances add-metadata INSTANCE_NAME \
   --metadata cos-update-strategy=update_enabled

停用現有執行個體的自動更新功能:

gcloud compute instances add-metadata INSTANCE_NAME \
   --metadata cos-update-strategy=update_disabled

為專案中的所有執行個體設定自動更新

里程碑 97起,您可以使用專案中繼資料中的中繼資料標記,為專案中的所有執行個體啟用或停用自動更新功能。

為專案中的所有執行個體啟用更新:

gcloud compute project-info add-metadata \
   --metadata cos-update-strategy=update_enabled

停用專案中所有執行個體的更新:

gcloud compute project-info add-metadata \
   --metadata cos-update-strategy=update_disabled

自動更新設計

Container-Optimized OS 採用主動/被動的根分區配置。相對於傳統 Linux 發佈版本會逐個套件進行更新,OS 映像檔會包含核心一同進行完整更新。映像檔會啟用自動更新功能,這表示預設的 Container-Optimized OS 執行個體一律會下載最新的 OS 版本,並在發布後立即在被動分區上安裝。

如果您使用的是 LTS 里程碑或 cos-stable 映像檔系列的映像檔,則會收到來自相同里程碑的最新 OS 版本更新。在 cos-dev 和 cos-beta 映像檔系列中,更新內容會是對應映像檔系列的最新 OS 版本。

自動更新行為的變更

Container-Optimized OS 團隊正積極改善後端基礎架構,以便提供自動更新功能。為了推動這些變更,我們會輪替用於簽署及驗證更新酬載的金鑰。不過,在金鑰輪替前發布的圖片無法自動更新為輪替後發布的圖片。受影響的圖片清單如下:

  • 以下映像檔無法更新至最新版本:

    • 在里程碑 77 上:cos-77-12371-1000-0 之前的映像檔
    • 在 81 個里程碑:cos-81-12871-1000-0 之前的映像檔
    • 在 85 里程碑:cos-85-13310-1000-0 之前的映像檔
    • 在里程碑 86 上:cos-dev-86-15053-0-0 之前的映像檔
  • 以下圖片將不再收到任何更新:

    • 77 之前的所有里程碑,包括先前已淘汰的里程碑。

使用者如果執行獨立的 Container-Optimized OS,且執行的是任何受影響的版本,並已啟用自動更新功能,就不會看到自己的執行個體更新為新版本。在這種情況下,使用者應手動選擇較新的 OS 版本,方法是使用較新的映像檔重新建立 VM 執行個體。自動更新功能將繼續支援所有新版本的支援里程碑。