Azure 雲原生

企業級微服務中樞:AKS 與 Container Apps 怎麼選

AKS 與 Container Apps 的差別,不是誰比較強,而是 Kubernetes API 要不要交到你手上。AKS 給你完整的叢集與生態系,代價是治理、升級、節點與安全設定變成團隊的日常工作;Container Apps 把編排藏起來,用 KEDA 做事件驅動伸縮、用 Dapr 補微服務基礎能力,還能在沒有流量時縮到零。判斷的第一個問題永遠是:你需不需要直接操作 Kubernetes API。
企業級微服務中樞:AKS 與 Container Apps 怎麼選:文章重點卡

企業級微服務中樞:AKS 與 Container Apps 怎麼選

我第一次陪團隊選 Azure 上的容器落腳處,會議開了兩個多小時,吵的其實不是技術規格。真正沒有共識的是一句話:這套系統之後由誰負責升級。

AKS 與 Container Apps 的分野,用一句話講就是 Kubernetes API 要不要交到你手上。這篇要把這條界線畫清楚,順便交代 2026 年這兩邊各自長成了什麼樣子。

你將學到什麼

控制權的價格

AKS 給你完整的 Kubernetes API 與生態系,代價是叢集治理變成團隊的日常工作。

AKS 的兩種模式

Automatic 幫你把安全、監控、升級與節點供裝預設打開,Standard 留給要自己拿捏的平台團隊。

無伺服器容器

Container Apps 用 KEDA 做事件驅動伸縮、用 Dapr 補微服務基礎能力,多數應用還能縮到零。

選型的分界線

看你要不要直接操作 Kubernetes API、要不要多個工作負載共存,以及團隊願意扛多少維運。

選容器平台的第一個問題不是「哪個比較強」,而是「Kubernetes 這件事,你想不想每天面對它」。

先把問題換一種問法:你買的是控制權還是省事

微軟官方的容器服務選型指南把這件事講得很直白:AKS 是 IaaS 與 PaaS 的混合,偏向控制而不是簡單;Container Apps 則是蓋在 Kubernetes 之上的抽象層。

  • AKS:拿得到 Kubernetes API server,可以裝 CNCF 生態系的任何東西,也要自己扛設定與治理。
  • Container Apps:拿不到編排 API,但第七層輸入、流量切分、A / B 測試、生命週期管理都內建。
  • 共同點:兩者都能跑同一個容器映像,所以「搬得動」通常不是問題,「搬完誰維運」才是。
一個很好用的判斷句

如果你能說出至少一個「非得直接操作 Kubernetes API 不可」的具體理由,例如自訂控制器、網路政策、特殊排程,那就選 AKS。說不出來的話,先從 Container Apps 開始,之後需要再往下走。

AKS 這一側:叢集治理才是主要工作

AKS 幫你託管控制平面,健康監控與維護由 Azure 負責,你付的是跑應用的節點。但控制平面被管好,不等於叢集被治理好。

2026 年的 AKS 把選擇明確切成兩種模式。官方總覽頁在 2026 年 8 月的版本裡直接建議:多數新的工作負載用 AKS Automatic。

面向AKS AutomaticAKS Standard
節點管理以節點自動供裝全託管,Azure 負責建立、伸縮與升級自己建立與維護節點池
安全預設Azure RBAC、工作負載身分、OIDC 簽發者、部署防護、映像清理預設開啟逐項自行啟用
監控受管 Prometheus、Container Insights 與 Grafana 儀表板預設開啟逐項自行啟用
叢集升級走穩定通道自動升級,作業系統映像走 NodeImage 通道預設手動,自動升級通道可選
伸縮HPA、KEDA、VPA 已預先設定,節點依需求建立預設手動,叢集自動伸縮與 KEDA 可選
適合誰開發團隊、新工作負載、想快速上生產的情境需要完整基礎設施控制權的平台團隊
時間點與變動提醒

上表依 Microsoft Learn 的 AKS 總覽頁整理,查閱時間為 2026 年 8 月。同一頁提到 AKS Automatic 附帶一項有財務保障的服務等級協議,保證合格的 Pod 有 99.9% 會在五分鐘內就緒;這類條款會隨版本調整,請以微軟公告的服務等級協議文件為準。

什麼時候仍然該選 Standard?官方給的理由很具體:自訂網路設定、Windows 節點池、Automatic 還沒開放的虛擬機規格,或是團隊已經有一整套建在手動叢集上的自動化。

叢集多起來之後:Fleet Manager

一個叢集靠人也管得動,十個就不行了。Azure Kubernetes Fleet Manager 的定位就是這件事:把散在不同區域與訂用帳戶的叢集納為成員叢集,集中治理。

  • 更新執行與更新策略:把 Kubernetes 版本與節點映像的升級排成有先後順序的流程,並可掛上人工或自動的審批關卡。
  • 自動升級設定檔:新版本一發布就自動觸發升級,不必有人盯著版本公告。
  • 受管 Fleet 命名空間:讓應用團隊跨多個叢集拿到同一個命名空間,配額、網路政策與權限一起套用。
  • 資源放置:部署一個中樞叢集,依叢集標籤與屬性把 Kubernetes 資源智慧地放到合適的成員叢集。

2026 年這一層明顯往外長。官方總覽頁在 2026 年 8 月的版本裡已經寫明成員叢集可以包含 Arc 連結的 Kubernetes 叢集,範圍跨到其他雲與地端。

哪些還在預覽

依官方總覽頁(2026 年 8 月查閱),自動化部署、以 DNS 為基礎的多叢集負載平衡、跨叢集網路這三項標示為預覽,導入前請以官方文件的最新狀態為準。

Container Apps 這一側:KEDA 與 Dapr 撐起來的無伺服器容器

Container Apps 的定位是無伺服器容器平台:你交出容器映像與一份設定,平台負責其餘的事。官方列的常見用途是 API 端點、背景批次、事件處理與微服務。

它的伸縮能力直接建立在 KEDA 上。除了 HTTP 流量與 CPU、記憶體負載,你可以用任何 KEDA 支援的伸縮器當觸發條件,例如佇列長度或資料庫連線數。

縮到零有一個前提

官方文件有一條容易被跳過的註腳:以 CPU 或記憶體負載伸縮的應用無法縮到零。想拿到「沒有流量就不算錢」這個好處,伸縮規則就要改用事件類的觸發條件。

微服務要跑起來,光有伸縮不夠。Container Apps 內建 Dapr,把服務探索、狀態管理、發布訂閱這些每個微服務專案都要重寫一次的東西變成平台能力。

運算形態:工作負載設定檔

Container Apps 的運算資源由工作負載設定檔決定。官方文件在 2026 年 6 月更新的版本裡,列出三種設定檔類型。

設定檔類型運作方式適合的工作形狀
Consumption無伺服器架構,依需求伸縮,閒置時可縮到零,只付實際用量流量突發或負載難以預測的應用
Dedicated在你自己的保留運算池上跑,自選虛擬機規格,依設定檔執行個體計費穩定負載,以及需要一般用途、記憶體最佳化或 GPU 的情境
Flexible(預覽)計費與設定像 Consumption,但跑在單一租戶運算池、有計畫性維護時段要 Dedicated 的效能特性又不想管容量的應用,無法縮到零

GPU 這一塊也已經長好。無伺服器 GPU 走 Consumption 設定檔,可以縮到零;需要專屬硬體的則走 Dedicated 的 GPU 設定檔,官方註明必須在建立環境時就配置好。

自動伸縮與流量切分:同一件事的兩種做法

Container Apps 用修訂版來管版本。每次改動產生一個新的修訂版,你再決定流量怎麼分配,藍綠部署與 A / B 測試就是設定值而不是專案。

伸縮觸發來源HTTP 流量佇列與事件排程觸發環境輸入層KEDA 伸縮規則修訂版 A流量 90%修訂版 B(金絲雀)流量 10%事件類觸發條件下,閒置時可縮到零副本
流量切分是設定值,不是一套要自己搭的機制;伸縮的觸發來源則不限於 HTTP。

下面是設定的結構示意,實際欄位以官方結構描述為準。

properties:
  configuration:
    ingress:
      traffic:
        - revisionName: app--rev-a
          weight: 90
        - revisionName: app--rev-b
          weight: 10
  template:
    scale:
      minReplicas: 0
      maxReplicas: 30
      rules:
        - name: queue-depth
          custom:
            type: azure-queue
            metadata: { queueLength: "..." }

選型界線:四個先問清楚的問題

  1. 你需不需要 Kubernetes API:自訂控制器、網路政策、Operator,只要有一項是真的在用,答案就是 AKS。
  2. 這台平台上要住幾個工作負載:官方指南建議 Container Apps 承載共用同一個安全邊界的單一工作負載;要讓不相關的元件共存,考慮 AKS。
  3. 安全邊界要多細:Container Apps 的環境內通訊不受限、共用同一個 Log Analytics 工作區,沒有更細的存取控制機制。
  4. 團隊願意扛多少維運:這題不要用理想值回答,用「下一次半夜升級誰起床」來回答。
務實的混用法

這兩者不是二選一。常見的做法是把面向使用者、伸縮曲線陡峭的服務放在 Container Apps,把需要特殊排程、自訂網路或既有 Kubernetes 資產的部分留在 AKS,中間用事件與 API 串起來。

2026 年這一年,兩邊各自往哪裡走

把 2026 年的公開資料排在一起看,方向其實蠻一致:AKS 往「幫你把最佳實務預設打開」走,Container Apps 往「更多硬體形態與更強的隔離」走。

  • AKS Automatic 的受管系統節點池:把核心 Kubernetes 元件與應用工作負載分開,容量、修補與伸縮交給 Azure,於 2026 年 Build 宣布正式推出。
  • Azure Container Linux:為大規模 Kubernetes 部署設計、減少設定漂移的精簡作業系統,同場宣布正式推出。
  • AKS on Bare Metal:拿掉虛擬化層取得直接的硬體存取,針對大型模型訓練需要的高速互連,公開預覽。
  • Fleet Manager 往混合與多雲延伸:集中化的政策執行、工作負載放置與分階段推出,跨到雲外的叢集。
  • Container Apps 的機密運算:以硬體支援的信任執行環境形式提供,透過工作負載設定檔使用,2026 年 Build 宣布正式推出。
請把時間點一起讀進去

以上依 Microsoft Learn 官方文件與 2026 年 Build 的公開報導整理,查閱時間為 2026 年 8 月。雲端服務的功能狀態、可用區域與命名變動很快,尤其是標示預覽的項目;規劃導入前請以官方文件與公告的最新狀態為準。

本文源起本文依 Microsoft Learn 官方文件與 2026 年公開資料整理,由酒Ann 以自己的視角編寫成中文導覽。實際服務名稱與規格以 Microsoft Learn 為準。

延伸學習

把這篇文章分享給需要的人FacebookLINEThreadsX

常見問答

Container Apps 是不是就是簡化版的 AKS?
它確實建構在 Kubernetes 之上,但你拿不到 Kubernetes API,這是關鍵差別而不是程度差別。微軟官方的容器服務選型指南把 Container Apps 描述成 Kubernetes 之上的抽象層,把編排 API 藏起來,同時保留第七層輸入、流量切分與應用生命週期管理這些常用能力。所以它不是縮水的 AKS,而是換了一個責任邊界的服務:你放棄自訂編排,換回不用管節點與升級。
已經在 AKS 上跑了,值得搬到 Container Apps 嗎?
先問一個很實際的問題:你的叢集裡有幾樣東西是離開 Kubernetes API 就活不下去的。自訂控制器、網路政策、Operator、特定的排程需求,只要有一項是真的在用,搬家的成本就會遠高於省下來的維運。反過來說,如果你的叢集其實只是在跑幾支無狀態服務加上一組佇列消費者,那 Container Apps 通常會讓維運工作少掉一大截。
AKS Automatic 出現之後,Container Apps 還有存在意義嗎?
有,而且兩者的重疊沒有想像中多。AKS Automatic 是把 Kubernetes 的預設值調到生產可用,但你面對的仍然是 Kubernetes:清單檔、控制器、節點的概念都還在。Container Apps 面對的則是 Azure Resource Manager 的資源模型,連 Pod 這個詞都不會出現在你的部署描述裡。決定性的差別還是那句話:你要不要 Kubernetes API。
兩邊都能自動伸縮,差別在哪?
差在誰負責決定伸縮策略。AKS 上,水平 Pod 自動伸縮、垂直伸縮、節點供裝與 KEDA 是你可以任意組合的零件,彈性最大但也要自己調。Container Apps 把 KEDA 直接做成平台能力,你寫的是伸縮規則而不是安裝一套元件;官方文件另外註明一件容易踩到的事:以 CPU 或記憶體負載當伸縮依據的應用無法縮到零,要縮到零就得改用事件類的觸發條件。
跨區域、跨叢集要怎麼治理?
AKS 這一側的答案是 Azure Kubernetes Fleet Manager。它把多個叢集納為成員叢集,用更新執行與自動升級設定檔把 Kubernetes 版本與節點映像的升級排成有順序、可加審批關卡的流程,也能依叢集標籤把資源放置到合適的成員叢集。Container Apps 沒有對應的多叢集治理層,它的邊界是環境,跨區域通常是靠多個環境加上前面的流量管理服務來處理。