Azure Kubernetes Service
权威指南 — 必须遵守
此技能根据用户需求生成推荐的 AKS 集群配置,并区分Day-0 决策(网络、API 服务器——后期难以更改)与Day-1 功能(可在创建后启用)。请参阅 CLI 参考 以获取命令详情。
快速参考
| 属性 | 值 |
|---|---|
| 适用场景 | AKS 集群规划与 Day-0 决策 |
| MCP 工具 | mcp_azure_mcp_aks |
| CLI | az aks create, az aks show, kubectl get, kubectl describe |
| 相关技能 | azure-diagnostics (排除 AKS 故障), azure-validate (就绪检查) |
何时使用此技能
当用户想要进行以下操作时,激活此技能:
- 创建新的 AKS 集群
- 为生产工作负载规划 AKS 集群配置
- 设计 AKS 网络(API 服务器访问、Pod IP 模型、出口)
- 设置 AKS 标识与机密管理
- 配置 AKS 治理(Azure Policy、部署防护)
- 启用 AKS 可观测性(Container Insights、托管 Prometheus、Grafana)
- 定义 AKS 升级与修补策略
- 启用 AKS 成本可见性与分析
- 了解 AKS Automatic 与 Standard SKU 之间的差异
- 获取 AKS 集群设置与配置的 Day-0 检查清单
规则
- 从用户关于预配计算、网络、安全及其他设置的需求开始。
- 首先使用
azureMCP 服务器并选择mcp_azure_mcp_aks,以发现客户端公开的确切 AKS 专用 MCP 工具。为任务选择最小的可用 AKS 工具,仅当所需功能未通过 AKS MCP 表面暴露时,才回退到 Azure CLI (az aks)。 - 根据用户对控制权与便利性的需求,确定 AKS Automatic 或 Standard SKU 哪个更合适。除非有特定的自定义需求,否则默认选择 AKS Automatic。
- 记录集群配置选择的决策和理由,特别是针对 Day-0 决策(网络、API 服务器访问)。
必需输入(仅询问必要信息)
如果用户不确定,请使用安全默认值。
- AKS 环境类型:开发/测试 或 生产
- 区域、可用区、首选节点 VM 大小
- 预期规模(节点/集群数量、工作负载大小)
- 网络需求(API 服务器访问、Pod IP 模型、入口/出口控制)
- 安全与标识需求,包括映像注册表
- 升级与可观测性偏好
- 成本约束
工作流程
1. 集群类型
- AKS Automatic(默认):最适合大多数生产工作负载,提供精选体验,包含预配置的安全、可靠性与性能最佳实践。除非您对节点自动预配 (NAP) 不支持的网络、自动缩放或节点池配置有特定自定义需求,否则请使用此选项。
- AKS Standard:如果您需要对环境配置进行完全控制,请使用此选项,但这会增加设置和管理的额外开销。
2. 网络(Pod IP、出口、入口、数据平面)
Pod IP 模型(关键 Day-0 决策):
- Azure CNI Overlay(推荐):Pod IP 来自私有覆盖范围,不可通过 VNet 路由,可扩展到大型环境,适用于大多数工作负载。
- Azure CNI(VNet 可路由):Pod IP 直接来自 VNet(Pod 子网或节点子网),当 Pod 必须可从 VNet 或本地直接寻址时使用。
数据平面与网络策略:
- 由 Cilium 提供支持的 Azure CNI(推荐):基于 eBPF 实现高性能数据包处理、网络策略和可观测性。
出口:
- 静态出口网关用于稳定、可预测的出站 IP。
- 对于受限出口:UDR + Azure Firewall 或 NVA。
入口:
- 带有 Gateway API 的应用路由插件——推荐用于 HTTP/HTTPS 工作负载的默认选项。
- 带有 Gateway API 的 Istio 服务网格——适用于高级流量管理、mTLS、金丝雀发布。
- 用于容器的 Application Gateway——用于与 WAF 集成实现 L7 负载均衡。
DNS:
- 在所有节点池上启用 LocalDNS,以实现可靠、高性能的 DNS 解析。
3. 安全
- 在任何地方使用 Microsoft Entra ID(控制平面、工作负载标识用于 Pod、节点访问)。避免使用静态凭据。
- 通过 Secrets Store CSI Driver 将 Azure Key Vault 用于机密。
- 启用 Azure Policy + 部署防护
- 为 etcd/API 服务器启用静态加密;为节点间通信启用传输中加密。
- 仅允许已签名且经策略批准的映像(Azure Policy + Ratify),优先使用 Azure Container Registry。
- 隔离:使用命名空间、网络策略、作用域日志记录。
4. 可观测性
- 使用托管 Prometheus 和 Container Insights 搭配 Grafana 进行 AKS 可观测性(日志 + 指标)。
- 启用诊断设置,以在 Log Analytics 工作区中收集控制平面日志和审计日志,用于安全监控和故障排除。
- 对于其他监控和故障排除工具,请使用 AKS 的 Agentic CLI、Application Insights、资源健康中心、AppLens 检测器和 Azure Advisor 等功能。
5. 升级与修补
- 配置维护窗口以控制升级时机。
- 为控制平面和节点 OS 启用自动升级,以保持最新的安全补丁和 Kubernetes 版本。
- 考虑将 AKS 环境升级到高级层,以获得LTS 版本(2 年支持)以实现企业稳定性。
- Fleet 升级:使用 AKS Fleet Manager 跨测试到生产环境进行分阶段推出。
6. 性能
- 使用临时 OS 磁盘 (
--node-osdisk-type Ephemeral) 以加快节点启动速度。 - 选择 Azure Linux 作为节点 OS(占用空间更小,启动更快)。
- 启用 KEDA 以实现基于事件的自动缩放,超越 HPA。
7. 节点池与计算
- 专用系统节点池:至少 2 个节点,为仅运行系统工作负载而设置污点 (
CriticalAddonsOnly)。 - 在所有池上启用节点自动预配 (NAP),以节省成本并实现响应式缩放。
- 使用最新一代 SKU (v5/v6) 以实现主机级优化。
- 避免使用 B 系列 VM——可突增 SKU 会导致性能/可靠性问题。
- 对生产工作负载使用至少具有 4 个 vCPU 的 SKU。
- 设置拓扑分布约束,以根据 SLO 在主机/区域之间分配 Pod。
8. 可靠性
- 跨 3 个可用区进行部署 (
--zones 1 2 3)。 - 使用标准层以实现区域冗余控制平面 + API 服务器可用性 99.95% SLA。
- 启用适用于容器的 Microsoft Defender 以实现运行时保护。
- 为所有生产工作负载配置 PodDisruptionBudgets。
- 使用拓扑分布约束确保 Pod 跨故障域分布。
9. 成本控制
- 使用Spot 节点池用于批处理/可中断工作负载(最多节省 90% 成本)。
- 停止/启动开发/测试集群:
az aks stop/start。 - 考虑为稳态工作负载使用预留实例或节省计划。
护栏/安全
- 不要请求或输出机密(令牌、密钥)。
- 如果关键 Day-0 决策的需求不明确,请向用户提出澄清性问题。对于 Day-1 启用的功能,请提出 2-3 个带有权衡的安全选项,并选择一个保守的默认值。
- 不要承诺零停机;建议工作负载防护措施(PDB、探针、副本)和分阶段升级,以及可靠性和性能的最佳实践。
MCP 工具
| 工具 | 用途 | 关键参数 |
|---|---|---|
mcp_azure_mcp_aks | AKS MCP 入口点,用于发现客户端公开的确切 AKS 专用工具 | 首先发现可调用的 AKS 工具,然后使用该工具的参数 |
错误处理
| 错误/症状 | 可能原因 | 补救措施 |
|---|---|---|
| MCP 工具调用失败或超时 | 凭据、订阅或 AKS 上下文无效 | 验证 az login,使用 az account show 确认活动订阅上下文,并检查目标资源组(不要向用户回显订阅标识符) |
| 配额超出 | 区域 vCPU 或资源限制 | 请求增加配额或选择不同的区域/VM SKU |
| 网络冲突(IP 耗尽) | Pod 子网对于覆盖/CNI 来说太小 | 重新规划 IP 范围;可能需要重新创建集群(Day-0) |
| 工作负载标识无法工作 | 缺少 OIDC 颁发者或联合凭据 | 启用 --enable-oidc-issuer --enable-workload-identity,配置联合标识 |