Azure Kubernetes Service
权威指导 — 强制合规
此技能会根据用户需求生成推荐的 AKS 集群配置,区分Day-0 决策(网络、API server — 后续难以更改)与Day-1 功能(可在创建后启用)。有关命令,请参见 [CLI 参考](./references/cli-reference.md)。
快速参考
| 属性 | 值 | |----------|-------| | 最适合 | AKS 集群规划和 Day-0 决策 | | MCP 工具 | mcp_azure_mcp_aks | | CLI | az aks create, az aks show, kubectl get, kubectl describe | | 相关技能 | azure-kubernetes-app-deploy(将应用部署到现有集群), azure-diagnostics(排查 AKS 问题), azure-validate(就绪性检查), azure-kubernetes-automatic-readiness(将现有集群迁移到 AKS Automatic) |
何时使用此技能
当用户希望以下操作时激活此技能:
- 创建新的 AKS 集群
- 为生产工作负载规划 AKS 集群配置
- 设计 AKS 网络(API server 访问、pod IP 模型、出站控制)
- 设置 AKS 身份和机密管理
- 配置 AKS 治理(Azure Policy、Deployment Safeguards)
- 启用 AKS 可观测性(Container Insights、Managed Prometheus、Grafana)
- 定义 AKS 升级和补丁策略
- 了解 AKS Automatic 与 Standard SKU 差异
- 获取 AKS 集群设置和配置的 Day-0 检查清单
正在将应用部署到现有集群? 此技能用于预配并配置*集群*。如果要对应用进行容器化,并将其部署到已有集群(Dockerfile + manifests + Deployment Safeguards),请改用 azure-kubernetes-app-deploy 子技能。
规则
- 从用户对预配计算、网络、安全和其他设置的需求开始。
- 使用
azureMCP server,并首先选择mcp_azure_mcp_aks,以发现客户端呈现的确切 AKS 专用 MCP 工具。选择最符合任务的、已发现的最小 AKS 工具;仅当所需功能未通过 AKS MCP 表面暴露时,才回退到 Azure CLI(az aks)。 - 根据用户对控制与便利的需求,判断 AKS Automatic 或 Standard SKU 更合适。除非需要特定自定义,否则默认使用 AKS Automatic。
- 记录集群配置选择的决策和理由,尤其是后续难以更改的 Day-0 决策(网络、API server 访问)。
必需输入(只询问必要内容)
如果用户不确定,请使用安全的默认值。
- AKS 环境类型:dev/test 或 production
- 区域、可用区、首选节点 VM 大小
- 预期规模(节点/集群数量、工作负载大小)
- 网络要求(API server 访问、pod IP 模型、入站/出站控制)
- 安全和身份要求,包括镜像 registry
- 升级和可观测性偏好
- 成本约束
工作流
1. 集群类型
- AKS Automatic(默认):最适合大多数生产工作负载,提供精选体验,并预配置了安全性、可靠性和性能最佳实践。除非你对网络、自动扩缩容或节点池配置有 Node Auto-Provisioning (NAP) 不支持的特定自定义要求,否则请使用它。
- AKS Standard:如果你需要对环境配置的完全控制,请使用它;这需要额外的设置和管理开销。
2. 网络(Pod IP、出站、入站、数据平面)
Pod IP 模型(关键 Day-0 决策):
- Azure CNI Overlay(推荐):pod IP 来自私有 overlay 范围,不可在 VNet 中路由,可扩展到大型环境,适合大多数工作负载
- Azure CNI(可在 VNet 中路由):pod IP 直接来自 VNet(pod 子网或节点子网);当 pod 必须可从 VNet 或本地环境直接寻址时使用
- 文档:https://learn.microsoft.com/azure/aks/azure-cni-overlay
数据平面与网络策略:
- Azure CNI powered by Cilium(推荐):基于 eBPF,用于高性能数据包处理、网络策略和可观测性
出站:
- Static Egress Gateway,用于稳定、可预测的出站 IP
- 对于受限出站:UDR + Azure Firewall 或 NVA
入站:
- App Routing addon with Gateway API — HTTP/HTTPS 工作负载的推荐默认选项
- Istio service mesh with Gateway API - 用于高级流量管理、mTLS 和金丝雀发布
- Application Gateway for Containers — 用于集成 WAF 的 L7 负载均衡
DNS:
- 在所有节点池上启用 LocalDNS,以获得可靠且高性能的 DNS 解析
3. 安全
- 在所有位置使用 Microsoft Entra ID(控制平面、用于 pod 的 Workload Identity、节点访问)。避免使用静态凭据。
- 通过 Secrets Store CSI Driver 使用 Azure Key Vault 管理机密
- 启用 Azure Policy + Deployment Safeguards
- 为 etcd/API server 启用静态加密;节点间启用传输中加密
- 仅允许已签名且经策略批准的镜像(Azure Policy + Ratify),优先使用 Azure Container Registry
- 隔离:使用命名空间、网络策略、作用域化日志记录
4. 可观测性
- 使用 Managed Prometheus 和 Container Insights(配合 Grafana)实现 AKS 可观测性(日志 + 指标)。
- 启用 Diagnostic Settings,以便在 Log Analytics workspace 中收集控制平面日志和审计日志,用于安全监控和故障排除。
- 对于其他监控和故障排除工具,请使用 Agentic CLI for AKS、Application Insights、Resource Health Center、AppLens detectors 和 Azure Advisors 等功能。
5. 升级与补丁
- 配置 Maintenance Windows,以控制升级时间
- 为控制平面和节点 OS 启用自动升级,以保持安全补丁和 Kubernetes 版本最新
- 通过将 AKS 环境升级到 Premium 层级,考虑使用 LTS versions 以获得企业稳定性(2 年支持)
- Fleet 升级:使用 AKS Fleet Manager 在测试到生产环境之间进行分阶段发布
6. 性能
- 使用 Ephemeral OS disks(
--node-osdisk-type Ephemeral)以加快节点启动 - 选择 Azure Linux 作为节点 OS(占用更小,启动更快)
- 启用 KEDA,实现超出 HPA 的事件驱动自动扩缩容
7. 节点池与计算
- 专用系统节点池:至少 2 个节点,仅用于系统工作负载的污点(
CriticalAddonsOnly) - 在所有节点池上启用 Node Auto Provisioning (NAP),以节省成本并实现快速扩缩
- 使用最新一代 SKU(v5/v6),以获得主机级优化
- 避免使用 B 系列 VM — 突发型 SKU 会导致性能/可靠性问题
- 生产工作负载使用至少 4 vCPU 的 SKU
- 设置拓扑分布约束,按 SLO 将 pod 分布到主机/可用区
8. 可靠性
- 跨3 个可用区部署(
--zones 1 2 3) - 使用 Standard tier,实现区域冗余控制平面,并为 API server 可用性提供 99.95% SLA
- 启用 Microsoft Defender for Containers,以获得运行时保护
- 为所有生产工作负载配置 PodDisruptionBudgets
- 使用拓扑分布约束确保 pod 分布到不同故障域
9. 成本控制
- 对批处理/可中断工作负载使用 Spot node pools(最高可节省 90%)
- 停止/启动 dev/test 集群:
az aks stop/start - 对稳定工作负载考虑使用 Reserved Instances 或 Savings Plans
深入场景 — 仅加载相关参考文件:
| 场景 | 触发关键词 | 参考 | |----------|-----------------|-----------| | Pod 资源调整 | 过度配置的 pod、CPU 请求、内存请求、调整工作负载大小 | [azure-aks-rightsizing.md](./references/azure-aks-rightsizing.md) | | VPA 设置 | 垂直 Pod 自动扩缩容、VPA 建议、启用 VPA | [azure-aks-vpa.md](./references/azure-aks-vpa.md) | | 集群自动扩缩容 | 空闲节点、CAS 关闭、启用自动扩缩容、缩容配置、节点利用率 | [azure-aks-autoscaler.md](./references/azure-aks-autoscaler.md) | | Spot 节点池 | Spot VM、Spot 节点、批处理工作负载、更便宜的节点 | [azure-aks-spot.md](./references/azure-aks-spot.md) |
消歧: 如果某个提示匹配多行(例如,“更便宜的节点”可能同时指向 Spot 和 autoscaler),优先选择最具体的匹配项。如果存在歧义,请在加载参考文件之前要求用户澄清其意图。
护栏 / 安全
- 不要请求或输出机密(token、key)。
- 不要要求用户粘贴 subscription ID。通过 MCP 工具(例如 list subscriptions、list resource groups)或
az account show/az account list发现订阅和资源范围,以便代理可以在不暴露标识符的情况下解析上下文。 - 如果 day-0 关键决策的要求存在歧义,请向用户提出澄清问题。对于 day-1 可启用功能,提出 2–3 个带有取舍的安全选项,并选择保守默认值。
- 不要承诺零停机;建议采用工作负载保护措施(PDB、探针、副本)和分阶段升级,并结合可靠性与性能最佳实践。
MCP 工具
| 工具 | 用途 | 关键参数 | |------|---------|----------------| | mcp_azure_mcp_aks | 用于发现客户端暴露的确切 AKS 专用工具的 AKS MCP 入口点 | 先发现可调用的 AKS 工具,然后使用该工具的参数 |
错误处理
| 错误 / 症状 | 可能原因 | 补救措施 | |-----------------|--------------|-------------| | MCP 工具调用失败或超时 | 凭据、subscription 或 AKS 上下文无效 | 验证 az login,使用 az account show 确认活动 subscription 上下文,并在不回显 subscription 标识符给用户的条件下检查目标资源组 | | 超出配额 | 区域 vCPU 或资源限制 | 请求增加配额,或选择其他区域/VM SKU | | 网络冲突(IP 耗尽) | 对于 overlay/CNI,pod 子网太小 | 重新规划 IP 范围;可能需要重新创建集群(Day-0) | | Workload Identity 不工作 | 缺少 OIDC issuer 或联合凭据 | 启用 --enable-oidc-issuer --enable-workload-identity,配置联合身份 |