用途
Azure Kubernetes Service 技能用于规划、创建和配置生产级 Azure Kubernetes Service (AKS) 集群,并基于用户需求产出推荐的 AKS 集群配置。该技能将决策区分为两类:Day-0 决策(网络、API 服务器等,创建后难以更改)与 Day-1 功能(可在创建后启用)。集群的创建与配置属于本技能职责;若要在已存在的集群上容器化并部署应用(Dockerfile + 清单 + Deployment Safeguards),则应使用子技能 azure-kubernetes-app-deploy。
何时使用
当用户希望执行以下操作时激活本技能:创建新的 AKS 集群;为生产工作负载规划 AKS 集群配置;设计 AKS 网络(API 服务器访问、Pod IP 模型、出站);设置 AKS 身份与密钥管理;配置 AKS 治理(Azure Policy、Deployment Safeguards);启用 AKS 可观测性(Container Insights、托管 Prometheus、Grafana);定义 AKS 升级与补丁策略;了解 AKS Automatic 与 Standard SKU 的差异;获取 AKS 集群设置与配置的 Day-0 检查清单。
主要能力与配置要点
集群类型
- AKS Automatic(默认):适合大多数生产工作负载,提供预配置的安全、可靠性与性能最佳实践,除非有网络、自动扩缩或节点池配置方面的特定自定义需求(且 Node Auto-Provisioning,NAP 不支持)。
- AKS Standard:需要对环境配置拥有完全控制时使用,但设置与管理开销更大。
网络(Pod IP、出站、入站、数据平面)
- Pod IP 模型(关键 Day-0 决策):Azure CNI Overlay(推荐,Pod IP 来自私有覆盖网段,不通过 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 附加组件配合 Gateway API(HTTP/HTTPS 工作负载的推荐默认方案);Istio 服务网格配合 Gateway API(高级流量管理、mTLS、金丝雀发布);Application Gateway for Containers(带 WAF 集成的 L7 负载均衡)。
- DNS:在所有节点池上启用 LocalDNS,以获得可靠且高性能的 DNS 解析。
安全
全面使用 Microsoft Entra ID(控制平面、Pod 的 Workload Identity、节点访问),避免静态凭据;通过 Secrets Store CSI Driver 使用 Azure Key Vault 管理密钥;启用 Azure Policy + Deployment Safeguards;为 etcd/API 服务器启用静态加密,为节点间通信启用传输加密;仅允许已签名且符合策略的镜像(Azure Policy + Ratify),优先使用 Azure Container Registry;通过命名空间、网络策略与范围化日志实现隔离。
可观测性
使用托管 Prometheus 与 Container Insights 配合 Grafana 实现 AKS 可观测性(日志 + 指标);启用 Diagnostic Settings 在 Log Analytics 工作区中收集控制平面日志与审核日志,用于安全监控与排障;其他监控与排障工具可使用 Agentic CLI for AKS、Application Insights、Resource Health Center、AppLens detectors 与 Azure Advisors。
升级与补丁
配置 Maintenance Windows 控制升级时机;为控制平面与节点操作系统启用自动升级,以获得安全补丁与 Kubernetes 版本更新;考虑使用 LTS 版本(2 年支持)以获得企业级稳定性,需将 AKS 环境升级到 Premium 层;集群升级可使用 AKS Fleet Manager 在测试到生产环境间分阶段发布。
性能
使用 Ephemeral OS 磁盘(--node-osdisk-type Ephemeral)加快节点启动;选择 Azure Linux 作为节点操作系统(占用更小、启动更快);启用 KEDA 实现超越 HPA 的事件驱动自动扩缩。
节点池与计算
专用系统节点池:至少 2 个节点,仅用于系统工作负载(CriticalAddonsOnly)并设置污点;在所有池上启用 Node Auto Provisioning (NAP) 以节省成本并实现弹性扩缩;使用最新一代 SKU(v5/v6)以获得主机级优化;避免 B 系列 VM(突发型 SKU 会导致性能/可靠性问题);生产工作负载使用至少 4 vCPU 的 SKU;设置拓扑分布约束,按 SLO 将 Pod 分布到不同主机/区域。
可靠性
跨 3 个可用区部署(--zones 1 2 3);使用 Standard 层获得区域冗余控制平面与 API 服务器 99.95% SLA;启用 Microsoft Defender for Containers 提供运行时防护;为所有生产工作负载配置 PodDisruptionBudgets;使用拓扑分布约束确保 Pod 跨故障域分布。
成本控制
对批处理/可中断工作负载使用 Spot 节点池(最高节省 90%);停止/启动开发测试集群:az aks stop/start;对稳态工作负载考虑预留实例或节省计划。
使用方式
本技能通过 MCP 工具与 CLI 操作。MCP 工具为 mcp_azure_mcp_aks;CLI 命令包括 az aks create、az aks show、kubectl get、kubectl describe。规则要求:先收集用户在计算、网络、安全等方面的需求;先使用 azure MCP 服务器并选择 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 模型、入站/出站控制)、安全与身份需求(含镜像仓库)、升级与可观测性偏好、成本约束。
相关技能与参考资料
相关技能:azure-kubernetes-app-deploy(向已有集群部署应用)、azure-diagnostics(AKS 基线排障)、azure-validate(就绪检查)、azure-kubernetes-automatic-readiness(将已有集群迁移到 AKS Automatic)、可选的 aks-skills 运维附加组件(聚焦事件、精确签名、数据包捕获与 GPU Day-2 工作流)。深度场景参考文件按需加载:Pod Rightsizing(azure-aks-rightsizing.md)、VPA 设置(azure-aks-vpa.md)、集群自动扩缩器(azure-aks-autoscaler.md)、Spot 节点池(azure-aks-spot.md)。若提示匹配多个场景,优先选择最具体的匹配;若存在歧义,先询问用户意图再加载参考文件。
限制与安全护栏
不请求或输出机密(令牌、密钥);不要求用户粘贴订阅 ID,应通过 MCP 工具(如列订阅、列资源组)或 az account show / az account list 发现订阅与资源范围,以便在不暴露标识符的情况下解析上下文;若 Day-0 关键决策的需求不明确,应向用户提出澄清问题,对 Day-1 可启用功能提出 2–3 个带权衡的安全选项并选择保守默认值;不要承诺零停机,应建议工作负载保护措施(PDB、探针、副本)与分阶段升级,并配合可靠性与性能最佳实践。
错误处理:MCP 工具调用失败或超时(凭据、订阅或 AKS 上下文无效)——验证 az login,用 az account show 确认活动订阅上下文,检查目标资源组(不要向用户回显订阅标识符);配额超限(区域 vCPU 或资源限制)——申请配额提升或选择不同区域/VM SKU;网络冲突(IP 耗尽,Pod 子网对 overlay/CNI 过小)——重新规划 IP 范围,可能需要重建集群(Day-0);Workload Identity 不工作(缺少 OIDC 颁发者或联合凭据)——启用 --enable-oidc-issuer --enable-workload-identity,配置联合身份。