平台與維運 2026 年 5 月 1 日

2026-05-01 — K8s v1.36 Controller 一致性保護、Azure MCP Bundle .mcpb、Docker Hardened Images ClickHouse

Kubernetes v1.36 Controller 一致…

Kubernetes v1.36 Controller 一致性保護:LastStoreSyncResourceVersion API 與四個控制器的失效快取緩解

Kubernetes Blog · 2026-04-28

Kubernetes v1.36 引入 controller 一致性保護機制,解決控制器基於過時快取資訊執行調解(reconcile)的問題,涉及 client-go 改善和 kube-controller-manager 的四個控制器更新。

問題背景

Controller 的本地快取(informer cache)在某些情況下可能落後於 API server 的實際狀態——例如在 watch reconnect 後、大量事件湧入期間,或者 client-go 的 FIFO 佇列非原子地處理批量操作時。基於過時快取執行調解可能導致:Pod 副本數計算錯誤、Job 重複排程、DaemonSet pod 重複建立等問題。

client-go 新增:AtomicFIFO 與 LastStoreSyncResourceVersion

AtomicFIFO(Feature gate: AtomicFIFO):確保 informer 初始 list 操作的批量資料以原子方式寫入佇列,防止中途狀態影響後續事件處理。

LastStoreSyncResourceVersion():新增至 cache.Store 介面,允許控制器查詢快取目前所見的最新資源版本(resource version),作為失效偵測的基礎。

四個控制器更新

以下控制器在執行調解前,現在會比較快取的 resource version 與最近寫入 API server 的 resource version;若快取版本較舊則跳過此次調解:

  • DaemonSet controller(StaleControllerConsistencyDaemonSet
  • StatefulSet controller(StaleControllerConsistencyStatefulSet
  • ReplicaSet controller(StaleControllerConsistencyReplicaSet
  • Job controller(StaleControllerConsistencyJob

預設全部啟用,可透過 feature gate 個別關閉。

ConsistencyStore API

client-go 提供 ConsistencyStore 資料結構供自訂 informer 實作者使用,提供三項功能:追蹤受管物件的最新 resource version;查詢快取版本;與寫入版本比較。

可觀測性指標

# kubelet /metrics 端點(Alpha)
kubelet_memory_qos_node_memory_min_bytes
kubelet_memory_qos_node_memory_low_bytes

原始來源:Kubernetes Blog — v1.36: Staleness Mitigation and Observability for Controllers


Azure MCP Server 推出 .mcpb 套件格式:自包含二進位,單次拖曳安裝,消除執行時相依

Microsoft Azure SDK Blog · 2026-04-30

Azure MCP Server 現在以 MCP Bundle(.mcpb)格式提供,這是一種新的 MCP server 打包規範,可讓使用者以拖曳方式在 Claude Desktop 等 MCP 客戶端中一鍵安裝,無需事先安裝 Node.js、Python、.NET SDK 或 Docker。

.mcpb 格式規範

.mcpb(MCP Bundle)是一種類似 .vsix(VS Code 擴充套件)或 .crx(Chrome 擴充套件)的打包格式,每個 bundle 包含:

  • manifest.json:server 元資料、工具清單、執行時需求宣告
  • 平台特定的自包含二進位(self-contained binary)
  • 所有相依函式庫,無需外部執行時

安裝流程

  1. 從 GitHub releases 下載平台對應的 .mcpb 檔案(macOS/Windows/Linux 各有版本)
  2. 將檔案拖曳至 Claude Desktop 的 Extensions 設定頁
  3. 執行 az login 完成 Azure CLI 認證

安裝後即可使用 100+ Azure 服務工具(Storage、Azure SQL、Cosmos DB、AKS、Functions 等)。

與舊安裝方式的對比

舊方式:需要在本機安裝 Node.js(或 .NET),透過 npm installdotnet tool install 安裝,手動設定 Claude Desktop 的 claude_desktop_config.json。新方式:下載一個 .mcpb 檔案、拖曳、登入——三步完成。

原始來源:Microsoft Azure SDK Blog — Azure MCP Server now available as an MCP Bundle


Docker Hardened Images:ClickHouse 最小化映像,削減 CVE 曝面積、符合 SLSA L3

Docker Blog · 2026-04-30

Docker 發布文章說明如何透過 Docker Hardened Images(DHI)在安全合規環境中部署 ClickHouse,無需更動應用程式程式碼。

Docker Hardened Images 技術原則

DHI 採用最小化基礎映像策略:

  • 移除所有非必要的系統套件(shell、套件管理器、除錯工具等)
  • 以非 root 使用者執行應用程式程序
  • 唯讀根檔案系統(read-only root filesystem)
  • 符合 SLSA Level 3(Supply Chain Levels for Software Artifacts)供應鏈安全標準
  • 每日自動重新建置,確保基礎套件包含最新安全更新

CVE 削減效果

文章以 ClickHouse 官方映像與 DHI 版本的 CVE 數量對比為例,展示透過移除非必要套件大幅縮減可攻擊面:許多 CVE 存在於 ClickHouse 本身不使用的套件中,DHI 透過不包含這些套件從根源消除風險。

相容性策略

由於移除了 shell 等工具,原本依賴容器 exec 進行除錯的工作流程需要調整。Docker 的解法是搭配 docker debug(ephemeral debug container)進行入侵式除錯,而不是在生產映像中保留除錯工具。

原始來源:Docker Blog — ClickHouse on Docker Hardened Images


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