平台與維運 2026 年 4 月 25 日

2026-04-25 — Kubernetes v1.36 兩項 GA、Ubuntu 26.04 LTS、Azure MCP Bundle

Kubernetes v1.36:精細粒度 Kubelet …

Kubernetes v1.36:精細粒度 Kubelet API 授權正式 GA,nodes/proxy 拆分為獨立子資源

Kubernetes Blog · 2026-04-24

Kubernetes v1.36 中,KubeletFineGrainedAuthz 特性閘門(feature gate)在 SIG Auth 與 SIG Node 協作下正式達到 GA(General Availability),並鎖定為啟用狀態,無法再被關閉。

舊有問題

在此之前,kubelet 的所有 HTTPS API 路徑都被映射至單一的 nodes/proxy 子資源。這代表授予 nodes/proxy GET 權限的 RBAC 角色,不只能讀取指標,理論上也能透過 WebSocket 連線執行容器內的任意命令。2026 年一項安全研究揭示:即使是只讀的 nodes/proxy GET,也可以被利用透過 WebSocket 在節點上任意執行指令。

新的子資源映射

Kubelet API 路徑子資源
/stats/*nodes/stats
/metrics/*nodes/metrics
/logs/*nodes/log
/pods, /runningPods/nodes/pods
/healthz, /configznodes/healthz
/spec/*nodes/spec
/checkpoint/*nodes/checkpoint
其他nodes/proxy(後備)

向後相容機制

kubelet 採用雙重授權回退策略:先檢查細粒度子資源,若失敗則退回 nodes/proxy。現有工作負載不需修改設定即可正常運行,新部署則應採用最小權限模型,僅授予 nodes/metricsnodes/stats 等必要子資源。

原始來源:Kubernetes Blog — v1.36 Fine-Grained Kubelet Authorization GA


Kubernetes v1.36:User Namespaces 正式 GA,ID-mapped mounts 消除效能瓶頸

Kubernetes Blog · 2026-04-23

經過 10 年開發歷程(Kubernetes 實作從 v1.25 alpha 開始,共 6 年),User Namespaces 於 v1.36 正式達到 GA,成為 Linux-only 的穩定功能。

安全語意

User Namespaces 將容器內的 UID/GID 映射到宿主機上的高編號 UID/GID。容器內以 UID 0 執行的程序,在宿主機上對應的是一個無特權的高 UID(例如 100000+),因此:

  • 容器逃逸漏洞被利用後,攻擊者獲得的是宿主機上的無特權身份
  • CAP_NET_ADMIN 等 capability 成為命名空間範圍(只影響容器內網路),不影響宿主機
  • 可在不使用 securityContext.runAsNonRoot 的情況下,讓需要 root 的工作負載安全運行

ID-mapped mounts 解決效能問題

GA 的關鍵障礙是掛載卷(volume)的擁有權問題。在 Linux 5.12 引入 ID-mapped mounts 之前,使用 User Namespaces 時需要遞迴 chown 整個卷的所有檔案,對大型卷代價極高。ID-mapped mounts 讓核心在掛載點層級透明地重新映射 UID/GID:

  • 對容器:檔案看起來由 UID 0 擁有
  • 磁碟上:實際擁有權不變
  • 時間複雜度:O(1) 操作,無需遍歷目錄樹

使用方式

spec:
  hostUsers: false   # 啟用 User Namespaces
  containers:
  - name: app
    securityContext:
      runAsUser: 0   # 容器內 root,宿主機上高 UID

此設定自 alpha 以來 API 介面未更改,現有使用 hostUsers: false 的工作負載無需任何調整。

原始來源:Kubernetes Blog — v1.36 User Namespaces GAKEP-127


Ubuntu 26.04 LTS「Resolute Raccoon」:TPM 全磁碟加密、rust-coreutils 部分整合

LWN.net · 2026-04-23

Ubuntu 26.04 LTS 於 2026 年 4 月 23 日發布,代號「Resolute Raccoon」,為桌面、伺服器、雲端與 WSL 版本提供 5 年主流支援,Ubuntu Pro 用戶可延長至 10 年。

TPM 全磁碟加密

26.04 引入 TPM 2.0 綁定的全磁碟加密,讓加密金鑰儲存於 TPM 晶片中,並與開機度量(boot measurements)綁定。系統在開機時自動解鎖磁碟,同時保持對未授權開機環境(例如 LiveCD 啟動)的抵禦能力,無需使用者每次輸入密碼。

rust-coreutils 整合狀況

26.04 嘗試以 Rust 重寫的 coreutils(uutils) 取代傳統 GNU coreutils,這是 Canonical 推動記憶體安全元件策略的一部分。然而整合過程中發現若干工具的行為差異無法輕易修正,因此 cpmvrm 等核心工具回退至 GNU 版本。此舉引發社群討論,爭議點在於在 LTS 版本中部署仍處於不完整稽核狀態的工具是否妥當。

Arm Livepatch 支援

Canonical 將 Livepatch(核心熱修補)擴展至 ARM 架構,讓 ARM-based 伺服器基礎設施可在不重啟的情況下套用安全修補,對持續服務的雲端基礎設施尤為重要。

其他改進

26.04 還包括改進的應用程式權限控制,以及跨桌面、伺服器、雲端環境的效能與可用性調整。

原始來源:LWN.net — Ubuntu 26.04 LTS releasedUbuntu 26.04 Release Notes


Azure MCP Server 支援 .mcpb Bundle 格式:MCP 伺服器的零依賴一鍵安裝

Microsoft Dev Blogs · 2026-04-24

Azure MCP Server 現在以 MCP Bundle(.mcpb) 格式發布,讓使用者不需安裝 Node.js、Python 或 .NET runtime,即可將 Azure 服務整合至 Claude Desktop 等 MCP 相容客戶端。

MCP Bundle 格式

.mcpb 是一個 ZIP 壓縮檔,內含:

  • manifest.json:描述伺服器工具清單、執行需求與平台支援資訊
  • 伺服器二進位及所有執行期依賴(平台特定,自包含)

格式設計類比瀏覽器擴充(.crx)或 VS Code 擴充(.vsix),但針對 MCP 伺服器的部署場景。安裝方式:從 GitHub Releases 下載對應作業系統的 .mcpb 檔案,拖拉至 Claude Desktop 的 Extensions 頁面,或透過進階設定手動選取。

Azure 服務覆蓋範圍

Azure MCP Server 透過此介面提供超過 100 個 Azure 服務的存取,包括 Cosmos DB、Storage、Key Vault、App Service、Microsoft Foundry,以及 Bicep/Terraform 模板生成、架構建議、資源健康監控等能力。

原始來源:Microsoft Dev Blogs — Azure MCP Server .mcpb support


End of article
0
Would love your thoughts, please comment.x
()
x