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 指令形成的层组成;层的重用和缓存命中对于快速构建至关重要。

使用 ACR,可以私密地存储和分发镜像及 Helm charts:

Azure Container Instances (ACI)

ACI 按需运行容器,无需进行集群管理。其主要单元是容器组,它是一组共同调度的容器,共享相同的主机操作系统内核、生命周期、IP 和卷。使用容器组可以实现 sidecar 模式(例如,日志托运程序、代理)或将主进程与辅助进程组合在一起。

Azure Kubernetes Service (AKS)

AKS 提供一个托管的控制平面,具备节点池、自动缩放以及深度的网络/身份集成选项。

节点池用于构建容量和工作负载的放置。系统节点池运行核心服务;用户节点池运行应用程序 Pod。可使用多个节点池,根据 CPU/内存/GPU 需求、操作系统 (Linux/Windows)、虚拟机大小和可用区来隔离工作负载。利用污点/容忍 (taints/tolerations) 来保护系统池,使用标签 (labels) 进行选择,并借助集群自动缩放器 (cluster autoscaler) 根据待处理的 Pod 来增删节点。在规划容量时,需考虑每个节点的最大 Pod 数 (maxPods) 和 Pod 密度。

Pod 调度由资源请求/限制 (requests/limits)、QoS 等级 (Guaranteed/Burstable/BestEffort) 和各种约束驱动。使用 nodeSelector/亲和性 (affinity) 与反亲和性 (anti-affinity) 将 Pod 推送到合适的池中,并将副本分布到不同的可用区和故障域。拓扑分布约束 (Topology spread constraints) 能改善 Pod 的均匀分布。对于关键服务,应定义 PodDisruptionBudgets 和 PriorityClasses 来控制自愿性中断和抢占行为。DaemonSets 用于在每个节点上放置代理(如日志、监控),而 CronJobs 则用于调度容器以执行周期性任务。

在 AKS 中,部署是声明式的。YAML 清单为 Deployments、StatefulSets、Jobs、Services 和 Ingress 定义了 apiVersion、kind、metadata 和 spec。应将清单保存在源代码控制中,使用 Kustomize 覆盖 (overlays) 来参数化环境差异,并通过 kubectl apply -f 应用。服务器端应用 (Server-side apply) 和恰当的标签/注解有助于明确所有权和进行漂移检测。对于打包可重用的应用程序,Helm 3 将模板和值捆绑在一起。可将 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,无需在集群内部存储密钥:

从镜像到 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多种语言
  • 每周内容更新
  • 奖励与推荐
  • 优先支持
开始免费试用

无需信用卡*

✓ 包含免费计划 · ✓ 随时取消 · ✓ 所有计划均解锁完整产品