AKS自动部署服务

AKS自动部署服务是一个基于Bicep模板的Azure Kubernetes服务自动部署解决方案,提供预设的生产环境配置、自动节点扩展和内置安全监控功能。

  • by abudhu
  • Jupyter Notebook
  • 本地部署
  • 更新于
在 GitHub 查看 abudhu/aks-automatic-mcp

使用说明

使用Bicep进行AKS自动部署

此模板部署了一个AKS(Azure Kubernetes Service)自动集群,并采用了针对生产工作负载的推荐配置。

什么是AKS自动(系统/技术)?

AKS Automatic 是 Azure Kubernetes Service 的一种新模式,提供:

  • 针对生产的预设配置优化
  • 自动节点配置和扩展
  • 内置的安全与监控功能
  • 简化管理经验

包含的功能

此模板部署了一个带有以下特性的AKS自动集群:

  • ✅ 自动模式 - 简化的集群管理
  • ✅ Azure CNI Overlay(Azure 网络接口覆盖网络) - 利用覆盖网络实现高效网络连接
  • ✅ 自动扩展 - 自动节点扩展(3-10个节点)
  • ✅ 自动升级 - 集群和节点操作系统的稳定通道
  • ✅ 工作负载身份 - 适用于容器的现代身份解决方案
  • ✅ OIDC 发行者 - 使用OpenID Connect进行身份验证
  • ✅ Azure 密钥保管库机密提供程序 - 安全的密钥管理
  • ✅ Azure Policy(Azure策略) - 治理与合规
  • ✅ Azure Monitor(中文可译为“Azure 监视器”) - 容器洞察与监控
  • ✅ Microsoft Defender(微软防御者) - 安全监控
  • ✅ 图片清理工具 - 自动清理未使用的镜像

先决条件

  • Azure CLI 2.50.0 或更高版本
  • Bicep CLI 0.20.0 或更高版本
  • 一个Azure订阅
  • 创建资源所需的适当权限

部署

1. 登录到Azure

az login
az account set --subscription <subscription-id>

2. 创建资源组

az group create --name rg-aks-automatic --location eastus

3. 部署AKS模板

选项A:使用参数文件

az deployment group create \
  --resource-group rg-aks-automatic \
  --template-file main.bicep \
  --parameters main.bicepparam

选项B:使用内联参数

az deployment group create \
  --resource-group rg-aks-automatic \
  --template-file main.bicep \
  --parameters clusterName=myakscluster \
  --parameters location=eastus \
  --parameters enableMonitoring=true

4. 获取集群凭据

az aks get-credentials --resource-group rg-aks-automatic --name aks-automatic-cluster

5. 验证部署

kubectl get nodes
kubectl get pods -A

发布MCP天气API并使用API管理

使用 apim-mcp.bicep 为MCP天气服务器提供一个前置的API管理实例。

az deployment group create \
  --resource-group rg-aks-automatic \
  --template-file apim-mcp.bicep \
  --parameters apim-mcp.bicepparam \
  --parameters mcpBackendUrl=https://<ingress-or-load-balancer-for-mcp>

更新 apim-mcp.bicepparam 在运行部署之前,请提供您的出版商详细信息、SKU偏好设置,以及用于暴露在AKS上运行的MCP天气服务器的公共终端。

在Azure AI Foundry中创建GPT-4.1智能体

  1. 捕获API管理调用URL以及(可选)天气API的订阅密钥。
  2. 配置一个与Azure OpenAI资源相连的Azure AI Foundry项目,使用 gpt-4.1 部署。
  3. 设置列表中列出的环境变量 agents/README.md 或者更新第3单元格中的内容 deploy-aks-automatic.ipynb。
  4. 在笔记本中运行创建代理的步骤(步骤12安装依赖项,步骤13创建代理)。
  5. 使用步骤14来调用代理并验证它返回了天气数据。原始响应已保存至 agents/agent_invoke_response.json。
  6. 记下生成的代理ID agents/agent_response.json 以便后续对话或在Azure AI Foundry中运行编排。

参数

参数 类型 描述 默认值
clusterName 字符串 AKS 集群的名称 必填
location 字符串 Azure 区域 资源组位置
dnsPrefix 字符串 集群的DNS前缀 与clusterName相同
enableMonitoring 布尔值 启用 Azure Monitor 真
tags 对象 要应用于资源的标签 {}

输出

输出 描述
clusterName 部署的集群名称
clusterId 集群的资源ID
clusterFqdn 完全合格域名
oidcIssuerUrl 工作负载身份的 OIDC 发行者 URL
kubeletIdentityObjectId kubelet身份的对象ID
workspaceId Log Analytics 工作区 ID

定制化

更改节点虚拟机大小

编辑 vmSize 代理池配置文件中的参数:

vmSize: 'Standard_DS4_v2'  // Change to your preferred size

调整自动扩展限制

修改 minCount 和 maxCount 在代理池配置文件中:

minCount: 3   // Minimum nodes
maxCount: 10  // Maximum nodes

禁用监控

设置 enableMonitoring 参数为 false:

az deployment group create \
  --resource-group rg-aks-automatic \
  --template-file main.bicep \
  --parameters enableMonitoring=false

清理

删除所有资源:

az group delete --name rg-aks-automatic --yes --no-wait

额外资源

许可证

此模板根据MIT许可协议提供,不做任何修改。