关于 azure-kubernetes
这是一个用于规划 AKS 集群的 Agent 技能,帮助用户根据需求确定集群配置建议。它区分不可轻易更改的 Day-0 决策(如网络和 API 服务器访问)与可在创建后启用的 Day-1 功能,适合需要规划生产环境 AKS 的团队。
主要功能
- 01AKS Automatic 与 Standard SKU 的选择建议
- 02Day-0 网络规划,包括 Pod IP 模型与出口设置
- 03身份、密钥与治理配置建议
- 04可观测性与升级修补策略
- 05节点池、可靠性与成本控制建议
适用场景
- 01规划生产环境的 AKS 集群配置
- 02评估 AKS 网络与 API 服务器访问方案
- 03生成 AKS 集群设置的 Day-0 检查清单
MCP 相关
该技能通过 mcp_azure_mcp_aks 工具发现客户端暴露的 AKS 相关 MCP 工具,并优先使用其中最小的可用工具,仅在 MCP 未覆盖所需功能时回退到 az aks 命令行。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ microsoft/ azure-skills --skill azure-kubernetes安装后在 Claude Code 中输入/azure-kubernetes确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
azure-kubernetes-app-deploy/knowledge-packs/frameworks/aspnet-core.mddjango.mdexpress.mdfastapi.mdflask.mdgo.mdnestjs.mdnextjs.mdspring-boot.mdazure-kubernetes-app-deploy/phases/quick-deploy.mdazure-kubernetes-app-deploy/references/base-images.mddetection.mdrollback.mdsafeguards.mdworkload-identity.mdazure-kubernetes-app-deploy/templates/dockerfiles/dotnet.Dockerfiledotnet.dockerignorego.Dockerfilego.dockerignorejava.Dockerfilejava.dockerignorenode.Dockerfilenode.dockerignorepython.Dockerfilepython.dockerignorerust.Dockerfilerust.dockerignoreazure-kubernetes-app-deploy/templates/github-actions/deploy.ymlazure-kubernetes-app-deploy/templates/k8s/configmap.yamldeployment.yaml详细介绍
Azure Kubernetes Service
权威指南 — 必须遵守
此技能会根据用户需求生成推荐的 AKS 集群配置,并区分第 0 天决策(网络、API 服务器——后续难以更改)和第 1 天功能(创建后可启用)。命令请参阅 CLI 参考。
快速参考
| 属性 | 值 |
|---|---|
| 适用场景 | AKS 集群规划和第 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-skills 运维附加组件(专注于事件、精确特征、数据包捕获和 GPU 第 2 天工作流) |
何时使用此技能
在用户希望执行以下操作时启用此技能:
- 创建新的 AKS 集群
- 为生产工作负载规划 AKS 集群配置
- 设计 AKS 网络(API 服务器访问、Pod IP 模型、出站流量)
- 设置 AKS 身份和机密管理
- 配置 AKS 治理(Azure Policy、Deployment Safeguards)
- 启用 AKS 可观测性(Container Insights、Managed Prometheus、Grafana)
- 制定 AKS 升级和修补策略
- 了解 AKS Automatic 与 Standard SKU 的差异
- 获取 AKS 集群设置和配置的第 0 天检查清单
要将应用部署到现有集群? 此技能用于预配和配置集群。若要将应用容器化并部署到现有集群(Dockerfile + 清单 + Deployment Safeguards),请改用
azure-kubernetes-app-deploy子技能。
需要处理更深入的运维任务? 请在此基础技能中完成第 0 天规划和基本操作。仅当专注的可选 AKS 运维技能有助于当前任务时,才加载 optional-aks-operations.md。
规则
- 从用户对计算、网络、安全和其他设置的预配需求着手。
- 使用
azureMCP 服务,并首先选择mcp_azure_mcp_aks,以发现客户端提供的确切 AKS 专用 MCP 工具。选择满足任务需求的最小 AKS 工具;只有当 AKS MCP 接口未提供所需功能时,才回退到 Azure CLI(az aks)。 - 根据用户对控制能力与便利性的需求,确定 AKS Automatic 或 Standard SKU 哪个更合适。默认选择 AKS Automatic,除非需要特定自定义配置。
- 记录集群配置选择及其理由,尤其是后续难以更改的第 0 天决策(网络、API 服务器访问)。
所需输入(仅询问必要信息)
如果用户不确定,请采用安全的默认值。
- AKS 环境类型:开发/测试或生产
- 区域、可用性区域、首选节点 VM 大小
- 预期规模(节点/集群数量、工作负载大小)
- 网络需求(API 服务器访问、Pod IP 模型、入口/出口流量控制)
- 安全和身份要求,包括映像注册表
- 升级和可观测性偏好
- 成本限制
工作流
1. 集群类型
- AKS Automatic(默认):最适合大多数生产工作负载,提供经过精心配置的体验,并预先配置安全性、可靠性和性能方面的最佳实践。除非你有 Node Auto-Provisioning (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 的 App Routing 插件 — HTTP/HTTPS 工作负载的推荐默认选项
- 带有 Gateway API 的 Istio 服务网格 - 适用于高级流量管理、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 服务器的静态数据加密;启用节点间的传输中加密
- 仅允许经过签名且通过策略审批的映像(Azure Policy + Ratify),优先使用 Azure Container Registry
- 隔离:使用命名空间、网络策略和限定范围的日志记录
4. 可观测性
- 使用 Managed Prometheus 和 Container Insights 搭配 Grafana 监控 AKS(日志 + 指标)。
- 启用诊断设置,将控制平面日志和审核日志收集到 Log Analytics 工作区,用于安全监控和故障排除。
- 对于其他监控和故障排除工具,可使用 Agentic CLI for AKS、Application Insights、Resource Health Center、AppLens 检测器和 Azure Advisors 等功能。
5. 升级与修补
- 配置维护时段,以控制升级时间
- 启用控制平面和节点 OS 的自动升级,确保安全补丁和 Kubernetes 版本保持最新
- 将 AKS 环境升级到 Premium 层级,以考虑使用长期支持(LTS)版本,获得企业级稳定性(支持 2 年)
- Fleet 升级:使用 AKS Fleet Manager,在测试到生产环境间分阶段推出升级
6. 性能
- 使用临时 OS 磁盘(
--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 层级,获得区域冗余控制平面和 API 服务器可用性 99.95% SLA
- 启用 Microsoft Defender for Containers,提供运行时保护
- 为所有生产工作负载配置 PodDisruptionBudgets
- 使用拓扑分布约束,确保 Pod 分布在不同故障域
9. 成本控制
- 对批处理/可中断工作负载使用 Spot 节点池(最多可节省 90%)
- 停止/启动开发/测试集群:
az aks stop/start - 对稳定运行的工作负载,可考虑 预留实例或 Savings Plans
深入场景——仅加载相关参考文件:
| 场景 | 触发关键词 | 参考文件 |
|---|---|---|
| Pod 资源规格调整 | 过度预配的 Pod、CPU 请求、内存请求、调整工作负载规格 | azure-aks-rightsizing.md |
| VPA 设置 | 垂直 Pod 自动扩缩器、VPA 建议、启用 VPA | azure-aks-vpa.md |
| 集群自动扩缩器 | 空闲节点、CAS 关闭、启用自动扩缩器、缩容配置文件、节点利用率 | azure-aks-autoscaler.md |
| Spot 节点池 | Spot VM、Spot 节点、批处理工作负载、更便宜的节点 | azure-aks-spot.md |
**消歧:**如果提示词匹配多行(例如,“更便宜的节点”可能同时指向 Spot 和自动扩缩器),请优先选择最具体的匹配项。如果存在歧义,请先询问用户以明确其意图,再加载参考文件。
防护措施/安全
- 不要索取或输出机密信息(令牌、密钥)。
- 不要要求用户粘贴订阅 ID。通过 MCP 工具(例如,列出订阅、列出资源组)或
az account show/az account list查找订阅和资源范围,以便 Agent 在不暴露标识符的情况下确定上下文。 - 如果第 0 天的关键决策需求不明确,请向用户提出澄清问题。对于第 1 天启用的功能,提供 2–3 个安全选项,说明各自的权衡,并选择保守的默认选项。
- 不要承诺零停机;应建议采取工作负载防护措施(PDB、探针、副本)并分阶段升级,同时遵循可靠性和性能最佳实践。
MCP 工具
| 工具 | 用途 | 关键参数 |
|---|---|---|
mcp_azure_mcp_aks | 用于发现客户端所提供的确切 AKS 专用工具的 AKS MCP 入口点 | 先发现可调用的 AKS 工具,然后使用该工具的参数 |
错误处理
| 错误/症状 | 可能原因 | 解决方法 |
|---|---|---|
| MCP 工具调用失败或超时 | 凭据、订阅或 AKS 上下文无效 | 验证 az login,使用 az account show 确认当前订阅上下文,并检查目标资源组,但不要向用户复述订阅标识符 |
| 超出配额 | 区域 vCPU 或资源限制 | 申请提高配额或选择其他区域/VM SKU |
| 网络冲突(IP 耗尽) | Pod 子网对于 overlay/CNI 来说太小 | 重新规划 IP 范围;可能需要重建集群(第 0 天) |
| 工作负载标识无法正常工作 | 缺少 OIDC 颁发者或联合凭据 | 启用 --enable-oidc-issuer --enable-workload-identity,配置联合身份 |