第一章:MCP AZ-104 考试模拟题及解析
虚拟机规模集自动扩展配置
在 Azure 中,虚拟机规模集(VM Scale Sets)支持基于性能指标的自动扩展。以下是一个典型的自动扩展规则配置场景,用于根据 CPU 使用率动态增加实例数量。
{
"name": "AutoScaleRule",
"enabled": true,
"targetResourceUri": "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}",
"profiles": [
{
"name": "defaultProfile",
"capacity": {
"minimum": "2",
"maximum": "10",
"default": "2"
},
"rules": [
{
"metricTrigger": {
"metricName": "Percentage CPU",
"metricResourceUri": "{targetResourceUri}",
"timeGrain": "PT1M",
"statistic": "Average",
"timeWindow": "PT5M",
"timeAggregation": "Average",
"operator": "GreaterThan",
"threshold": 75
},
"scaleAction": {
"direction": "Increase",
"type": "ChangeCount",
"value": "2",
"cooldown": "PT5M"
}
}
]
}
]
}
上述 JSON 定义了当平均 CPU 使用率超过 75% 持续 5 分钟时,每次增加 2 个实例,最小保留 2 个实例,最多扩展至 10 个。
常见考试题型与解析策略
AZ-104 考试常考察资源管理、网络配置、身份权限与备份恢复等核心技能。以下是典型题型应对建议:
- 情景判断题:仔细阅读部署环境和合规要求,优先选择符合最小权限原则的方案
- 顺序操作题:熟悉 Azure CLI 命令执行流程,例如使用
az vm create 创建虚拟机时需指定资源组、镜像和网络配置 - 多选题:注意“选择所有适用项”类题目,避免遗漏正确选项
| 知识点 | 权重占比 | 推荐复习材料 |
|---|
| 管理 Azure 身份与访问 | 20-25% | Azure AD 角色分配文档 |
| 部署与管理虚拟机 | 25-30% | VM 扩展集模板示例 |
第二章:Azure计算资源管理高频考题解析
2.1 虚拟机部署与配置的典型试题剖析
在虚拟化技术考察中,虚拟机部署与配置是高频考点,重点检验考生对资源分配、网络模式及自动化配置的理解。
常见部署流程
典型的试题场景要求使用命令行工具完成虚拟机创建。例如,在基于 KVM 的环境中,可通过 `virt-install` 实现:
virt-install \
--name=web-server \
--vcpus=2 \
--memory=2048 \
--disk size=20 \
--os-variant=ubuntu20.04 \
--network bridge=virbr0
上述命令创建一台具有 2 核 CPU、2GB 内存、20GB 磁盘的虚拟机,接入默认桥接网络。其中 `--os-variant` 可优化资源配置,提升安装效率。
关键配置要点
- 网络模式选择:NAT 适用于内网访问,桥接支持外部直接通信
- 磁盘类型:qcow2 支持快照,适合实验环境
- 自动化应答:配合 kickstart 或 cloud-init 实现无人值守安装
2.2 可用性集与可用性区域的应用场景模拟题
在设计高可用架构时,理解可用性集(Availability Set)与可用性区域(Availability Zone)的差异至关重要。可用性集通过将虚拟机分布在不同的容错域和更新域中,降低单点故障风险;而可用性区域则利用地理上隔离的数据中心实现跨区域冗余。
典型应用场景对比
- 可用性集适用于单区域内部的容错部署
- 可用性区域适合对灾难恢复有高要求的业务
创建可用性集的Azure CLI示例
az vm availability-set create \
--name myAvSet \
--resource-group myResourceGroup \
--location eastus \
--platform-fault-domain-count 2 \
--platform-update-domain-count 2
该命令创建一个包含两个容错域和两个更新域的可用性集,确保虚拟机在物理硬件层面隔离,提升服务连续性。参数
--platform-fault-domain-count控制硬件故障影响范围,
--platform-update-domain-count管理维护期间的停机窗口。
2.3 Azure虚拟机规模集(VMSS)的弹性扩展策略实战题
在高并发场景下,Azure虚拟机规模集(VMSS)通过自动扩展策略动态调整实例数量,保障服务稳定性。
基于CPU使用率的自动扩展规则配置
{
"metricTrigger": {
"metricName": "Percentage CPU",
"resourceUri": "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmss-name}",
"timeGrain": "PT1M",
"statistic": "Average",
"timeWindow": "PT5M",
"timeAggregation": "Average",
"operator": "GreaterThan",
"threshold": 75
},
"scaleAction": {
"direction": "Increase",
"type": "ChangeCount",
"value": "2",
"cooldown": "PT5M"
}
}
该规则每分钟采集一次CPU使用率,若连续5分钟平均值超过75%,则增加2个实例,冷却期为5分钟,防止频繁伸缩。
扩展策略类型对比
| 策略类型 | 特点 | 适用场景 |
|---|
| 基于指标 | 响应实时负载变化 | Web服务器弹性伸缩 |
| 定时扩展 | 预设时间触发 | 周期性业务高峰 |
2.4 容器化工作负载在Azure Kubernetes服务中的运维考题
在Azure Kubernetes服务(AKS)中管理容器化工作负载时,稳定性与可观测性成为核心挑战。需重点关注节点健康、Pod调度策略及资源配额控制。
资源配置与限制
为避免资源争用,应在Pod定义中明确设置requests和limits:
resources:
requests:
memory: "512Mi"
cpu: "250m"
limits:
memory: "1Gi"
cpu: "500m"
该配置确保Kubernetes调度器根据实际需求分配节点资源,防止“资源饥饿”或“噪声邻居”问题。
健康检查机制
合理配置liveness和readiness探针是保障服务自愈能力的关键:
- livenessProbe:检测应用是否崩溃并触发重启
- readinessProbe:决定Pod是否接入流量
二者协同工作,提升系统弹性与部署可靠性。
2.5 混合云环境下的Azure Arc集成操作题
在混合云架构中,Azure Arc 提供统一控制平面,实现跨本地、边缘和多云资源的集中管理。
连接Linux服务器到Azure Arc
通过以下脚本将非Azure Linux服务器注册为受管实例:
curl -sL https://aka.ms/InstallAzureArcAgent | sudo bash
sudo systemctl start azure-arc-agent
az connectedmachine machine-extension create \
--name "CustomLogExtension" \
--machine-name "my-onprem-server" \
--resource-group "HybridRG" \
--location "eastus" \
--type "CustomScriptExtension" \
--publisher "Microsoft.Compute"
该命令链首先安装Arc代理,启动服务后通过CLI注册机器并部署扩展。参数
--location指定元数据驻留区域,
--type定义扩展行为。
资源分组与策略应用
使用标签对混合资源进行逻辑分组,便于后续应用Azure Policy进行合规性审计,确保跨环境配置一致性。
第三章:网络与安全核心考点精讲
3.1 Azure虚拟网络设计与子网划分实战模拟
在Azure环境中,虚拟网络(VNet)是实现资源隔离与通信的基础。合理设计VNet及其子网结构,有助于提升安全性与可管理性。
虚拟网络规划要点
- 选择合适的地址空间,避免与本地网络冲突
- 按业务功能划分子网,如Web、App、DB层分离
- 预留足够IP地址,支持未来扩展
子网配置示例
{
"addressPrefix": "10.1.0.0/24",
"subnets": [
{
"name": "web-subnet",
"addressPrefix": "10.1.0.0/26"
},
{
"name": "app-subnet",
"addressPrefix": "10.1.0.64/26"
}
]
}
上述JSON定义了一个包含两个子网的VNet,/24前缀提供256个IP地址,每个/26子网可容纳62台主机,适用于中小规模部署。
网络分段优势
通过子网划分,可结合网络安全组(NSG)实施精细化访问控制,降低横向移动风险。
3.2 网络安全组与Azure防火墙规则配置典型题
在Azure云环境中,网络安全组(NSG)和Azure防火墙是实现网络分层防护的核心组件。NSG主要用于子网或网络接口级别的流量控制,而Azure防火墙则提供集中式、高级别的出站/入站保护。
网络安全组规则配置示例
{
"name": "Allow-HTTP-Inbound",
"properties": {
"priority": 100,
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "10.0.1.0/24",
"destinationPortRange": "80",
"protocol": "Tcp",
"access": "Allow",
"direction": "Inbound"
}
}
上述规则允许从任意源地址访问目标子网的80端口。优先级100确保其早于低优先级规则执行。*注意:NSG默认拒绝所有未明确允许的流量。*
Azure防火墙应用规则
- 支持FQDN过滤,如允许 *.update.microsoft.com
- 基于网络协议和端口进行L3-L4层控制
- 可与路由表集成,引导流量经过防火墙
3.3 本地到云端的VPN与ExpressRoute连接故障排查
常见连接问题识别
在混合云环境中,本地数据中心与云平台之间的网络连通性至关重要。常见的故障包括BGP会话中断、路由丢失和MTU不匹配。使用Azure Network Watcher可快速定位链路状态。
诊断命令示例
# 检查IPsec隧道状态
az network vpn-connection show --name myVpnConn --resource-group MyRG --query 'connectionStatus'
该命令返回连接状态(Connected/Disconnected/Unknown),用于判断隧道是否正常建立。参数
--query过滤输出仅显示关键状态字段,提升诊断效率。
ExpressRoute故障排查流程
- 验证MSEE路由器BGP对等体状态
- 检查私有对等配置中的VLAN和IP子网
- 确认本地路由器与Azure之间AS号匹配
- 利用PowerShell获取电路运行状态:
Get-AzExpressRouteCircuitStats
第四章:身份、存储与监控综合题型训练
4.1 基于Azure Active Directory的角色权限分配考题
在企业云环境中,精细化的权限管理是安全架构的核心。Azure Active Directory(Azure AD)通过基于角色的访问控制(RBAC)实现资源访问的精准管控。
内置角色与自定义角色
Azure AD 提供多种内置角色,如“全局管理员”、“应用管理员”等,适用于常见管理场景。对于特殊需求,可创建自定义角色,精确分配权限集。
- 全局管理员:拥有租户内所有服务的完全控制权
- 应用管理员:管理企业应用和应用注册
- 用户管理员:管理用户和组生命周期
权限分配实践
通过 PowerShell 可实现角色成员分配:
# 获取角色对象
$role = Get-AzureADDirectoryRole | Where-Object {$_.DisplayName -eq "Application Administrator"}
# 获取用户
$user = Get-AzureADUser -ObjectId "user@contoso.com"
# 分配角色
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId -RefObjectId $user.ObjectId
上述命令将指定用户添加到“应用管理员”角色中,
$role.ObjectId 表示角色唯一标识,
$user.ObjectId 为用户对象ID,实现权限绑定。
4.2 存储账户类型选择与数据冗余策略应用题
在构建高可用云存储架构时,合理选择存储账户类型是关键。Azure 提供通用 v2、Blob 存储等账户类型,其中通用 v2 支持多层级(Hot/Cool/Archive)和多种冗余策略。
数据冗余策略对比
- LRS(本地冗余):数据复制到同一区域内的多个故障域
- GRS(地理冗余):主区域 LRS 基础上异步复制到次区域
- RA-GRS:支持读取次区域副本,提升容灾访问能力
代码配置示例
{
"sku": {
"name": "Standard_RAGRS"
},
"kind": "StorageV2",
"location": "eastus",
"properties": {
"accessTier": "Hot"
}
}
该 JSON 配置创建一个具备读取访问权限的地理冗余存储账户,适用于跨区域灾难恢复场景。Standard_RAGRS 确保主区域故障时仍可读取副本数据。
4.3 使用Azure Monitor实现资源健康监控实操题
配置Azure Monitor基础环境
在开始监控前,需确保目标资源已启用诊断设置,并将监控数据流向Log Analytics工作区。可通过Azure门户或ARM模板完成配置。
创建自定义查询与警报规则
使用Kusto查询语言(KQL)从Log Analytics中提取关键指标。例如,查询虚拟机CPU使用率:
Perf
| where ObjectName == "Processor" and CounterName == "% Processor Time"
| summarize avg(CounterValue) by Computer, bin(TimeGenerated, 5m)
| where avg_CounterValue > 80
该查询检索过去一段时间内CPU使用率持续高于80%的虚拟机,
summarize avg(CounterValue) 按5分钟时间窗口计算平均值,便于识别性能瓶颈。
- Computer:标识受影响的主机
- TimeGenerated:时间分区用于趋势分析
- 阈值过滤可直接集成至警报规则
将此查询保存并关联到Azure Alert,设定触发条件与通知渠道,即可实现自动化健康告警。
4.4 备份与恢复策略在Azure Recovery Services中的配置
在Azure Recovery Services中,配置备份与恢复策略是保障关键工作负载数据安全的核心环节。通过定义策略规则,可自动化管理虚拟机、数据库等资源的备份周期与保留期限。
策略创建流程
使用PowerShell可高效部署标准化备份策略:
$policy = New-AzRecoveryServicesBackupProtectionPolicy `
-Name "DailyVMBackup" `
-WorkloadType "AzureVM" `
-BackupManagementType "AzureVM" `
-RetentionPolicy $retention `
-SchedulePolicy $schedule
上述命令创建每日执行的虚拟机备份策略。参数
-WorkloadType指定保护对象类型,
-RetentionPolicy和
-SchedulePolicy需预先定义保留时长与触发时间。
恢复点管理
- 支持基于时间点的精确恢复
- 最长可保留365天的恢复点
- 跨区域复制增强灾难恢复能力
第五章:总结与展望
云原生架构的演进趋势
现代企业正加速向云原生转型,Kubernetes 已成为容器编排的事实标准。以下代码展示了在 Go 中使用 client-go 调用 Kubernetes API 的典型方式:
package main
import (
"context"
"fmt"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)
func main() {
config, _ := clientcmd.BuildConfigFromFlags("", "/path/to/kubeconfig")
clientset, _ := kubernetes.NewForConfig(config)
pods, _ := clientset.CoreV1().Pods("default").List(
context.TODO(),
metav1.ListOptions{Limit: 10},
)
for _, pod := range pods.Items {
fmt.Printf("Pod: %s, Status: %s\n", pod.Name, pod.Status.Phase)
}
}
可观测性体系构建
完整的可观测性需涵盖日志、指标与追踪三大支柱。下表对比主流开源工具组合:
| 类别 | 工具 | 适用场景 |
|---|
| 日志 | EFK (Elasticsearch + Fluentd + Kibana) | 大规模日志聚合与分析 |
| 指标 | Prometheus + Grafana | 实时监控与告警 |
| 分布式追踪 | Jaeger + OpenTelemetry | 微服务调用链分析 |
未来技术融合方向
服务网格(如 Istio)与安全左移策略深度集成,推动零信任网络架构落地。通过策略即代码(Policy as Code),可实现自动化合规检查。例如,使用 OPA(Open Policy Agent)定义命名空间配额约束:
- 定义 Rego 策略限制 Pod 数量
- 集成 Gatekeeper 实现准入控制
- 结合 CI/CD 流水线执行预检
- 动态拦截违规资源配置提交