AKS 提供多個自動升級通道,專用於即時節點層級OS安全性更新。 此通道與叢集層級 Kubernetes 版本升級不同,並會將其取代。
Tip
如果您使用 AKS Automatic,節點 OS 升級已預先設定為使用 NodeImage 通道,該通道每週都會套用安全性修補和錯誤修正。 不需要設定。 對於使用自訂虛擬網路的 AKS Automatic 叢集,如有需要,你可以調整維護時段。 欲了解更多,請參閱 What is Azure Kubernetes Service (AKS) Automatic?關於 AKS 標準群組,請繼續閱讀以選擇最適合您需求的頻道。
這很重要
自 2025 年 11 月 30 日起,Azure Kubernetes Service(AKS)不再支援或提供 Azure Linux 2.0 的安全更新。 Azure Linux 2.0 節點映像檔凍結於 202512.06.0 版本。 自 2026 年 3 月 31 日起,節點映像將被移除,且你將無法擴展節點池。 透過 升級節點池 至支援的 Kubernetes 版本或遷移至 osSku AzureLinux3,遷移到支援的 Azure Linux 版本。 更多資訊請參閱 退休 GitHub 議題 及 Azure 更新退休公告。 想隨時掌握公告與更新,請參考 AKS 發布公告。
節點OS自動升級與叢集自動升級之間的互動
節點層級 OS 安全性更新的發行速度比 Kubernetes 修補程式或次要版本更新更快。 節點OS自動升級通道可為您提供彈性,並啟用節點層級OS安全性更新的自定義策略。 然後,您可以為叢集層級 Kubernetes 版本 自動升級選擇個別方案。
最好同時使用叢集層級 的自動升級 和節點OS自動升級通道。 針對叢集自動升級通道和 - 節點OS自動升級通道,套用兩組個別的aksManagedAutoUpgradeScheduleaksManagedNodeOSUpgradeSchedule,即可微調排程。
節點 OS 映射升級的通道
選取的通道會決定升級的時間。 變更節點 OS 自動升級通道時,最長需要等候 24 小時以使變更生效。
附註
- Node OS 映像檔自動升級不會影響叢集的 Kubernetes 版本。
- 自 API 版本 2023-06-01 起,任何新的 AKS 標準 叢集預設為
NodeImage。 -
AKS 自動 叢集預設總是使用該
NodeImage頻道。
造成進行重新製作映像的節點作業系統通道變更
下列節點作業系統通道轉換將會觸發節點上的重新製作映像:
| 從 | 至 |
|---|---|
| 未受管理 | 沒有 |
| 未指定 | 未受管理 |
| SecurityPatch | 未受管理 |
| NodeImage | 未受管理 |
| 沒有 | 未受管理 |
可用的節點OS升級通道
以下升級頻道可用於 AKS Standard 叢集。 (AKS Automatic 叢集預設使用 NodeImage 通道。)
| 通路 | 描述 | OS 特有的行為 |
|---|---|---|
None |
節點不會自動套用安全性更新。 這表示您須全權負責安全性更新。 | N/A |
Unmanaged |
作業系統內建修補基礎架構會自動套用作業系統更新。 新配置的機器尚未打上補丁。 OS 基礎結構會在某個時間點對其進行修補。 | Ubuntu 和 Azure Linux (CPU 節點集區) 大約每天 06:00 UTC 左右透過自動升級/dnf-automatic 套用安全性修補程式一次。 Windows 不會自動套用安全性修補程式,因此這個選項的行為相當於 None。 您需要使用 kured 等工具管理重新啟動過程。
在 AKS 上具有 OS Guard 的 Azure Linux 不支援 Unmanaged。 |
SecurityPatch |
受 AKS 測試、完全受控,並套用安全部署做法的 OS 安全性修正程式。 AKS 會使用來自標示為「僅限安全性」之映像維護者的修補程式,定期更新節點的虛擬硬碟 (VHD)。當安全性修補程式套用至節點時,可能會發生中斷。 不過,AKS 只會在必要時為您的節點重新製作映像 (例如針對特定核心安全性套件) 來限制中斷。 套用修補程式後,VHD 就會更新,而現有的機器會升級至該 VHD,以接受維護時段和激增設定。 如果 AKS 決定不需要為節點重新製作映像,則會立即修補節點,而不會清空 Pod 並執行任何 VHD 更新。 此選項會產生在節點資源群組中裝載 VHD 的額外成本。 如果您使用此通道,依預設會停用 Linux 自動升級。 | Azure Linux 在已啟用 GPU 的 VM 上不支援此通道。
只要仍支援 kubernetes 次要版本,SecurityPatch 就適用於已淘汰的修補程式版本。 適用於 AKS 的 Flatcar 容器 Linux 和 AKS 上具有 OS Guard 的 Azure Linux 不支援 SecurityPatch。 |
NodeImage |
AKS 每週會使用新修補的 VHD 更新節點,該 VHD 中包含安全性修正和 Bug 修正。 新 VHD 的更新會根據維護時段和激增設定中斷執行。 選擇此選項不會產生額外的 VHD 成本。 如果您使用此通道,依預設會停用 Linux 自動升級。 只要叢集 Kubernetes 次要版本仍在支援中,就會支持節點映射升級。 節點映像經過 AKS 測試,完全管理,並採用安全的部署做法。 |
選擇什麼 - SecurityPatch 通道或 NodeImage 通道?
針對 AKS 自動叢集
AKS Automatic 預設使用 NodeImage 通道。 此管道提供安全修補、錯誤修正與生產工作負載可管理性的最佳平衡。 每週頻率符合AKS最佳實務,並調整至最佳群聚表現,無需人工介入。
不需要設定 ——升級會在維護期間自動完成。 你可以 調整維護視窗 ,如果想控制更新時間,但頻道選擇是固定的。
為什麼 AKS Automatic 要使用 NodeImage?
- 包含安全修正與錯誤修正,確保全面穩定
- 每週更新頻率提供可預測的更新時間
- 由 AKS 全面管理,並採取安全部署措施
- 沒有額外的 VHD 主機費用
- 針對生產工作負載最佳化,並採用建議的預設設定
適用於 AKS 標準叢集
如果您使用 AKS Standard,請根據以下比較評估您的需求,以選擇 SecurityPatch 或 NodeImage 通道。
在 SecurityPatch 或 NodeImage 管道之間進行選擇時,有兩項重要考量:
| 房產 | NodeImage 通道 | SecurityPatch 頻道 | 推薦頻道 |
|---|---|---|---|
Speed of shipping |
新 VHD 的一般建置、測試、發佈和推行時間表大約需要兩週,以確保符合安全部署的做法。 雖然在 CVE 的情況下,加速推出可能會依個別案例發生。 您可以透過發行追蹤器 (部分機器翻譯) 監視新 VHD 在某個區域推出的確切時機。 | 即使使用安全部署做法,SecurityPatch 版本也比 NodeImage更快。 SecurityPatch 在 Linux 環境中具有「即時修補」的優點,其中修補會導致選擇性的「重新映像」,而且不會在每次套用修補程式時重新映像。 如果發生重新製作映像,則由維護時段控制。 |
SecurityPatch |
Bugfixes |
除了安全性修正程式之外,還帶有 Bug 修正程式。 | 嚴格地只帶有安全性修正程式。 | NodeImage |
叢集模式比較
下表總結了節點作業系統依叢集模式自動升級的配置:
| 層面 | AKS 自動化系统 | AKS 標準 |
|---|---|---|
| 預設頻道 | NodeImage(預先設定) | 需手動選擇 |
| 更新節奏 | 每週(固定) | 根據你選擇的頻道 |
| 所需配置 | 無 - 升級自動進行 | 是的——選擇頻道並排程 |
| 包含錯誤修正 | 是的 | 僅在選取 NodeImage 通道時 |
| 推薦用於 | 大多數生產環境工作負載 | 自訂需求或特定限制 |
| 維護視窗控制 | Optional | 強烈建議 |
在新叢集上設定節點OS自動升級通道
附註
如果你要建立 AKS 自動叢集,請跳過這些步驟。 NodeImage 通道已經預先設定好了。 這些步驟僅適用於 AKS 標準叢集。
使用 az aks create 命令搭配 --node-os-upgrade-channel 參數,在新叢集上設定節點OS自動升級通道。 下列範例會將節點 OS 自動升級通道設定為 SecurityPatch。
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export AKS_CLUSTER="myAKSCluster$RANDOM_SUFFIX"
az aks create \
--resource-group $RESOURCE_GROUP \
--name $AKS_CLUSTER \
--node-os-upgrade-channel SecurityPatch \
--generate-ssh-keys
在現有的叢集上設定節點OS自動升級通道
附註
如果你用的是 AKS 自動叢集,你無法更改節點作業系統的自動升級通道——它已經預設使用 NodeImage。 這些步驟僅適用於 AKS 標準叢集。 如果需要,你可以調整 AKS 自動叢集的維護時間窗。
使用 az aks update 命令搭配 --node-os-upgrade-channel 參數,在現有叢集上設定節點作業系統自動升級通道。 下列範例會將節點 OS 自動升級通道設定為 SecurityPatch。
az aks update --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --node-os-upgrade-channel SecurityPatch
結果:
{
"autoUpgradeProfile": {
"nodeOsUpgradeChannel": "SecurityPatch"
}
}
調整 AKS 自動叢集的維護視窗
附註
AKS Automatic 叢集使用預先設定的 NodeImage 通道,無法更改這個選擇。 不過,你可以透過設定維護時段來調整升級時間。
請使用 az aks update 包含參數 --node-os-upgrade-channel NodeImage 和 --schedule-config 選項的指令設定節點作業系統自動升級的維護視窗:
az aks update \
--resource-group $RESOURCE_GROUP \
--name $AKS_CLUSTER \
--node-os-upgrade-channel NodeImage \
--schedule-config "scheduled-maintenance-window=true" \
--maintenance-window "frequency=Weekly,day-of-week=Sunday,utc-offset=+00:00,duration-hours=4,start-hour=2"
更新各通道的擁有權與頻率
預設頻率表示未套用計劃性維護時段。
| 通路 | 更新擁有權 | 預設頻率 |
|---|---|---|
Unmanaged |
OS 驅動的安全性更新。 AKS 無法控制這些更新。 | 對於 Ubuntu 和 Azure Linux,在每晚凌晨 6 點 UTC 左右。 對於 Windows,則為每月一次。 |
SecurityPatch |
AKS 測試、完全受控,並套用安全部署做法。 如需詳細資訊,請參閱 Azure 上 Canonical 工作負載的加強式安全性和復原能力 (英文)。 | AKS 所判斷的步調通常比每週更快。 |
NodeImage |
AKS 測試、完全受控,並套用安全部署做法。 如需版本的詳細資訊,請查閱發行追蹤器中的 AKS 節點映像 | 每週。 |
附註
雖然 Windows 安全性更新會每月發行,但使用 Unmanaged 通道不會自動將這些更新套用至 Windows 節點。 如果您選擇 Unmanaged 通道,則必須管理 Windows 節點的重新啟動流程。
Node OS 自動升級通道已知限制
- 目前,當您將 叢集自動升級通道 設定為
node-image時,它也會自動將節點 OS 自動升級通道設定為NodeImage。 如果您的叢集自動升級通道為node-image,則無法變更節點OS自動升級通道值。 若要設定節點作業系統的自動升級通道值,請確認 叢集自動升級通道 的值不是node-image。 - Windows OS 節點集區不支援
SecurityPatch通道。 - 該
SecurityPatch通道與使用denyEffect 要求客戶管理金鑰(CMK)來加密作業系統磁碟的 Azure 原則 不相容。 在套用安全性修補程式時,AKS 會暫時在節點資源群組 (MC_) 中建立虛擬機器擴展集 (VMSS)(前綴為copy-),但此類資源會被該原則禁止,因此升級會因RequestDisallowedByPolicy錯誤而失敗。 在節點集區中使用受客戶管理的金鑰仍可獲得SecurityPatch支援;衝突僅發生於具有deny效果的原則。 如果你需要組織層級deny的 CMK OS 磁碟加密政策,請改用該NodeImage通道。
附註
針對 SecurityPatch 通道,請使用 CLI 2.61.0 或更新版本。
節點 OS 計劃性維護期間
節點 OS 自動升級的計劃性維護會從您指定的維護時段開始。
附註
為確保正常運作,請使用四小時或以上的維護時段。
如需計劃性維護的詳細資訊,請參閱使用計劃性維護來排程 Azure Kubernetes Service (AKS) 叢集的維護時段。
節點OS自動升級常見問題
如何檢查叢集上目前的 nodeOsUpgradeChannel 值?
請執行 az aks show 命令並檢查「autoUpgradeProfile」,以判定將 nodeOsUpgradeChannel 設定為什麼值:
az aks show --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER --query "autoUpgradeProfile"
結果:
{
"nodeOsUpgradeChannel": "SecurityPatch"
}
Node OS 的自動升級在 AKS Automatic 的設定上有不同嗎?
Yes. AKS Automatic 叢集預設會使用 NodeImage 通道——你不需要特別設定任何東西。 此配置提供:
- 每週安全修正與錯誤修正
- 自動重新安裝映像並採取安全部署作業
- 維護時段控制 (選用)
- 針對大多數工作負載優化的生產準備預設
- 沒有額外的 VHD 主機費用
AKS 標準叢集要求你根據自己的需求選擇頻道。 若要從 AKS Standard 遷移到 AKS Automates,並享受這些預設值,請參閱「什麼是 Azure Kubernetes Service (AKS) Automatic?」
我可以更改 AKS 自動叢集的節點作業系統自動升級通道嗎?
否。 AKS Automatic 叢集會使用 NodeImage 通道,且無法更改這個通道。 如果你需要不同的頻道,可以用 AKS Standard 叢集。 不過,你可以調整維護視窗,控制 AKS Automatic 叢集升級的時間。
如何監視節點OS自動升級的狀態?
若要檢視節點 OS 自動升級的狀態,請查閱叢集上的活動記錄。 還可查閱升級 AKS 叢集中所述的特定升級相關事件。 AKS 也會發出與升級相關的事件方格事件。 若要深入了解,請參閱以 AKS 作為事件方格來源。
如果我的叢集自動升級通道設定為 node-image?,我可以變更節點OS自動升級通道值嗎?
否。 目前,當您將 叢集自動升級通道 設定為 node-image時,它也會自動將節點 OS 自動升級通道設定為 NodeImage。 如果您的叢集自動升級通道為 node-image,則無法變更節點OS自動升級通道值。 要更改節點作業系統自動升級通道的值,請確保 叢集自動升級通道 沒有 node-image。
為何建議 SecurityPatch 透過 Unmanaged 信道?
在 Unmanaged 通道上,AKS 無法控制如何及何時傳遞安全性更新。 使用 SecurityPatch,安全性更新會經過完整測試,並遵循安全部署做法。
SecurityPatch 同時負責維護期間。 如需詳細資訊,請參閱 Azure 上 Canonical 工作負載的加強式安全性和復原能力 (英文)。
SecurityPatch 一律會導致節點的重新映像嗎?
AKS 只有在必要時才會進行重新映像,例如一些核心套件可能需要重新映像才能完全套用。
SecurityPatch 的設計目的是盡可能最小化中斷。 如果 AKS 決定不需要為節點重新製作映像,則會即時修補節點,而不會清空 Pod,且在此情況下不會執行任何 VHD 更新。
為什麼 SecurityPatch 通道需要連線到 snapshot.ubuntu.com 端點?
使用 SecurityPatch 通道時,Linux 叢集節點必須從 ubuntu-snapshots-on-azure-ensuring-predictability-and-consistency-in-cloud-deployments (英文) 中所述的 ubuntu 快照集服務下載必要的安全性修補程式和更新。
如何知道節點上是否已套用 SecurityPatch 或 NodeImage 升級?
kubectl get nodes --show-labels執行 命令以列出叢集中的節點及其標籤。
在傳回的標籤中,您應該會看到類似下列輸出的行:
kubernetes.azure.com/node-image-version=AKSUbuntu-2204gen2containerd-202410.27.0-2024.12.01
在這裡,節點映像的基礎映像版本為 AKSUbuntu-2204gen2containerd-202410.27.0。 如果適用,通常會遵循安全性修補程式版本。 在前述例子中,它是 2024.12.01。
在節點標籤檢視下,Azure 入口網站中也會查閱相同的詳細資料:
相關內容
如需升級最佳做法和其他考量的詳細討論,請參閱 AKS 修補檔和升級指導。
想了解更多關於 AKS Automatic 預先設定的設定與生產準備預設,請參閱 What is Azure Kubernetes Service (AKS) Automatic?