本文將概述 Azure Container Linux(ACL),這是一個不可變且以容器優化為基礎的作業系統,專為 Azure Kubernetes Service (AKS)設計。 ACL 源自 Flatcar Container Linux 專案,建立在 Flatcar 經過驗證的容器優先不可變設計基礎上,同時加入 Azure Linux 套件、服務與平台整合。 這讓 ACL 能與上游 Flatcar 創新緊密對齊,同時滿足 Azure 的生產、安全與合規要求。 若要深入瞭解 Flatcar 容器 Linux,請參閱 Flatcar 文件。
ACL 自 AKS v1.34 起正式作為 AKS 的作業系統選項提供使用(GA)。 你可以在新的 AKS 叢集中部署 ACL 節點池,或是將 ACL 節點池加入現有叢集。
這很重要
自 2026 年 12 月 10 日起,Azure Kubernetes Service (AKS) 不再支援 Azure Linux 搭配 OS Guard for AKS(預覽版)。 此時,AKS 將不再生產新的 Azure Linux 搭配 OS Guard 節點映像檔,也不再提供安全修補程式,且你也無法再用 Azure Linux 搭配 OS Guard 建立新的節點池。 2027 年 3 月 10 日,AKS 移除所有現有的 Azure Linux 與 OS Guard 節點映像,導致擴展與修復(重映像化與重新部署)操作失敗。 為避免中斷,請遷移至 Azure Container Linux(ACL)。 欲了解更多關於退休的資訊,請參閱退休 GitHub 議題及 Azure 更新退休公告。 想隨時掌握公告與更新,請參考 AKS 發布說明。
在 AKS 上使用 ACL 的好處
| Benefit | Description |
|---|---|
| 內建不變性以增強安全性 | 由核心強制執行的 /usr 目錄不可變性,會在開機時和執行期間驗證作業系統映像的完整性。 此設計有助於在未經授權的變更影響叢集前阻擋,並降低作業系統層級竄改的風險。 |
| 攻擊面極小 | ACL只運送運轉貨櫃所需的零件。 透過縮小作業系統的規模與複雜度,ACL 減少攻擊者可用的套件、服務及潛在入口點數量,並簡化安全管理。 |
| 自動化節點映像更新 | ACL 每週提供基於映像的更新,包含最新的安全修補與錯誤修正。 此方法能保持節點作業系統版本在叢集間的一致性與最新性,並有助於降低已知漏洞的風險。 |
| 供應鏈信任 | 建立在 Azure Linux 簽署套件與供應鏈流程之上,提供系統元件明確的來源。 |
| 與 Azure 安全性功能整合 | 可信啟動和安全開機的原生支援提供量化啟動保護和驗證。 |
| 開源透明度 | Flatcar 以及許多底層技術(dm-verity 和 SELinux)都是上游或 開放原始碼,Microsoft 也有工具和貢獻來支援這些功能。 |
ACL 的主要功能
以下主要特點使 ACL 成為強化且容器優化的 AKS 作業系統:
- 不可變性:'/usr' 目錄會以唯讀磁碟區掛載,並受 dm-verity 保護。 執行時,核心會驗證一個有署名的根雜湊值,以偵測並阻擋篡改行為
- SELinux 的強制存取控制:ACL 包含 SELinux 以強制執行強制存取控制政策,限制哪些程序可存取敏感系統資源。 SELinux 預設以強制模式運作。
- 可信啟動與安全開機:ACL 要求可 信啟動 搭配安全開機與 vTPM,以確保開機鏈在作業系統載入前的完整性。 這是使用統一核心映像 (UKI) 來達成的,它將核心、initramfs 和核心命令列打包組合成一個單一的已簽署成品中。 在啟動過程中,UKI 被測量並記錄在 vTPM 中,從最早階段就確保完整性。
- NVIDIA GPU 節點支援:ACL 支援 AMD 64 架構上的 NVIDIA GPU 節點池,讓您能在 AKS 上運行高效能運算(HPC)及 AI/ML 工作負載,並搭配強化且容器優化的作業系統。 ACL 不支援 GPU 啟用的 ARM64 架構節點池。
- AMD64 與 ARM64 架構支援:ACL 支援 AKS 上的 AMD64 與 ARM64 架構。
- 主權供應鏈安全:ACL 繼承了 Azure Linux 的安全建置流程與已簽署的統一核心映像檔(UKI)。
- 節點自動配置:ACL 支援節點自動配置(NAP)。
不支援的功能
ACL 目前不支援以下功能:
-
SecurityPatch和Unmanaged節點作業系統升級通道。 - 第一代虛擬機:你不能使用只支援第一代 ACL 的虛擬機大小。
- Pod 沙箱。
- 一個非可信發射變體。 ACL 需要啟用 Trusted Launch。
如果你現有的叢集使用任何不支援的功能,可能無法為該叢集新增 ACL 節點池。
功能藍圖
Azure Linux 發布了一份功能路線圖,其中包含正在開發中並可供一般公開發行(GA)及公開預覽的功能。
作業系統遷移與 ACL 升級
AKS 支援透過原地作業系統 SKU 遷移或建立新的 ACL 節點池,將現有節點池遷移至 ACL。 關於詳細的遷移步驟、考量及回滾指示,請參見 「將現有節點遷移至 ACL」。
用於 AKS 版本管理的 ACL
AKS 的 ACL 每週釋出 AKS 節點映像檔。 版本設定會遵循 AKS 日期型格式 (例如:202506.13.0)。 ACL 目前僅支援全節點映像更新。
你可以在發行說明中查看可用的節點映像檔,並使用nodeImageVersion指令查看az aks nodepool list正在執行的叢集。 例如:
az aks nodepool list --resource-group <resource-group-name> --cluster-name <aks-cluster-name> --query '[].{name: name, nodeImageVersion: nodeImageVersion}'
輸出範例:
[
{
"name": "nodes",
"nodeImageVersion": "AKSAzureContainerLinux-202606.01.0"
}
]
相關內容
要開始使用 ACL for AKS,請參閱以下資源:
使用 Azure CLI - 使用 ARM 範本部署 ACL 叢集
- 教學:建立 ACL 叢集
- 教學:將 ACL 節點池加入現有叢集