Microsoft AZ-204: Azure 容器解決方案 — 學習指南

屬於 Microsoft Azure Developer Associate AZ-204 — 學習指南. 使用經過驗證的解答練習: Microsoft 考試中心, 或參加限時模擬考試: ExamRoll.io.

總覽

Azure 提供了一系列的容器選項,涵蓋了單一容器執行、經編排的叢集,以及安全、企業級的映像檔供應鏈。Azure Container Instances (ACI) 是執行 Linux 或 Windows 容器最快的方法,無需管理伺服器。Azure Kubernetes Service (AKS) 是一個受控的 Kubernetes 控制平面,可透過進階的排程、網路、安全性和 DevOps 整合來擴展微服務。Azure Container Registry (ACR) 是一個私有、地理複寫的登錄檔中心,用以支撐您的建置、標記、推送/拉取及 Helm 分發流程。精通 Docker 映像檔的建構與生命週期管理,是在任何這些平台上進行可靠部署的基礎。本節從開發人員的實用角度,闡述各個部分如何協同運作,包括由 YAML 驅動的部署、Helm 封裝、服務暴露以及身分識別/安全模式。

Docker 與 Azure Container Registry (ACR)

可靠的容器交付始於扎實的 Docker 基礎。每個映像檔都由 Dockerfile 指令所形成的層 (layer) 組成;層的重複使用和快取命中對於快速建置至關重要。

透過 ACR,您可以私密地儲存和分發映像檔及 Helm charts:

undefined

或使用帶有 Azure AD 權杖的

undefined

來驗證 ACR。避免在生產環境中啟用 ACR 管理員使用者。

undefined

undefined

。使用

undefined

或透過 Kubernetes 映像檔參考來拉取。

undefined

undefined

進行隨選建置;使用

undefined

自動化更新,以從 Git commit 或基礎映像檔更新觸發,從而無需更改應用程式碼即可修復 CVE。

undefined

將 ACR 附加到 AKS,以簡化 AcrPull 角色的指派。

Azure Container Instances (ACI)

ACI 依需求執行容器,無需管理叢集。其主要單位是容器群組 (container group),這是一組共同排程的容器,共享相同的主機作業系統核心、生命週期、IP 和磁碟區。您可以使用容器群組來實作 sidecar 模式 (例如,日誌傳送器、代理伺服器) 或將主要程序與輔助程序結合。

undefined

undefined

進行觀察;使用

undefined

執行互動式指令。

Azure Kubernetes Service (AKS)

AKS 提供一個受控管的控制平面,具備節點池、自動擴展以及深度的網路與身分識別選項。

節點池建構了容量和工作負載的放置。系統節點池執行核心服務;使用者節點池執行應用程式 pod。使用多個節點池,可根據 CPU/記憶體/GPU 需求、作業系統 (Linux/Windows)、VM 大小和可用性區域來隔離工作負載。採用污點 (taints)/容忍 (tolerations) 來保護系統節點池,使用標籤 (labels) 進行選擇,並利用叢集自動擴展器 (cluster autoscaler) 根據待處理的 pod 來新增/移除節點。在規劃大小時,需考慮每個節點的 maxPods 和 pod 密度。

Pod 的調度由資源請求 (requests)/限制 (limits)、QoS 等級 (Guaranteed/Burstable/BestEffort) 和約束條件驅動。使用 nodeSelector/親和性 (affinity) 與反親和性 (anti-affinity) 將 pod 推送到適當的節點池,並將複本分散到不同的區域和故障網域。拓撲擴展約束 (Topology spread constraints) 可改善分布的均勻性。對於關鍵服務,定義 PodDisruptionBudgets 和 PriorityClasses 來塑造自願性中斷和搶佔行為。DaemonSets 在每個節點上放置代理程式 (如日誌、監控),而 CronJobs 則排程容器執行週期性任務。

AKS 中的部署是宣告式的。YAML 清單檔為 Deployments、StatefulSets、Jobs、Services 和 Ingress 定義了 apiVersion、kind、metadata 和 spec。將清單檔保存在原始碼控制中,使用 Kustomize 疊加層為不同環境進行參數化,並透過 kubectl apply -f 來套用。伺服器端套用 (Server-side apply) 和適當的標籤/註解有助於所有權和漂移偵測。對於打包可重複使用的應用程式,Helm 3 將模板 (templates) 和值 (values) 捆綁在一起。將 Helm chart 作為 OCI 成品託管在 ACR 中,並使用 helm upgrade --install <release> oci://<acr>.azurecr.io/helm/<chart> -f values.yaml 進行安裝。為每個環境使用不同的 values 檔案,追蹤 chart 版本,並使用 helm rollback 進行快速恢復。

您將會每日使用的 kubectl 指令:

AKS 中的網路功能以清晰的職責劃分來暴露 pod 和服務:

身分識別與授權整合了 Azure AD,無需在叢集內儲存 secret:

從映像檔到 AKS 的端到端流程直接且安全。建置多階段映像檔,使用不可變的版本進行標記,推送到 ACR,然後使用清單檔或 Helm 部署到 AKS。AKS 使用 kubelet 受控識別從 ACR 拉取映像檔,而 pod 則透過工作負載身分識別來使用 Azure 資源。服務透過 ClusterIP/LoadBalancer 暴露,並由一個集中管理 TLS 和路由的 ingress 控制器進行優化。

實務問題情境

Adobe 的 Creative Cloud 團隊正在將一個單體式的媒體處理服務分解為微服務,目標是實現低延遲的全球交付和一個強化的供應鏈。

  1. 在 CI 中使用多階段 Dockerfile 建置和儲存映像檔
  1. 強化登錄庫並自動化修補
  1. 建立具備分離節點池和身分識別的 AKS
  1. 定義宣告式部署和打包
  1. 暴露服務並強制執行 L7 安全性
  1. 實作工作負載對 Azure 資源的安全存取
  1. 使用 ACI 處理批次處理溢流

每個選擇都直接支持 Adobe 的目標:具有異地複寫和私有端點的 ACR Premium 可保護並加速映像檔拉取;具有專門節點池和工作負載身分識別的 AKS 強制執行隔離和最低權限存取;Helm 和宣告式 YAML 標準化了部署和回滾;帶有 WAF 的 AGIC 提供了具彈性、安全的 L7 ingress;而 ACI 則在沒有持續性叢集成本的情況下處理突發的批次處理。


Azure Cosmos DB · 所有領域 · Azure 驗證、授權和安全性

練習這些題目 → · 在 ExamRoll.io 上限時練習 →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

通過考試 →

瀏覽 Microsoft →

Related guides

一站式存取

一份訂閱。所有考試。

每個方案都可無限存取答案搜尋、練習測驗、AI 解釋和完整的資源庫 — 支援 20 多種語言。

每月
24.87
Just €0.83/day
包含所有內容:
  • 無限答案搜尋
  • 無限練習測驗
  • AI 驅動的解釋
  • 完整資源庫
  • 20 多種語言
  • 每週內容更新
  • 獎勵與推薦
  • 優先支援
開始免費試用

無需信用卡*

最佳價值
12 個月
179.87
Just €0.49/daySave 40%
包含所有內容:
  • 無限答案搜尋
  • 無限練習測驗
  • AI 驅動的解釋
  • 完整資源庫
  • 20 多種語言
  • 每週內容更新
  • 獎勵與推薦
  • 優先支援
開始免費試用

無需信用卡*

✓ 包含免費方案 · ✓ 隨時取消 · ✓ 所有方案解鎖完整產品