Files
agent_management/scripts/K8S_DEPLOYMENT_GUIDE.sh
zhanggangyong 4b09912806 feat: 添加动态 Agent 生成器和 CI/CD 集成
主要更新:
- 新增 agent_code_generator.py: AI 驱动的 Pydantic Agent 代码生成
- 新增 gitee_manager.py: Gitee API 集成(仓库创建、文件推送、Secrets 配置)
- 新增 tool_generator_api.py: 动态 Agent 生成 API 端点
- 新增 template_manager.py: 数据库驱动的模板管理
- 新增 docs/DYNAMIC_AGENT_GENERATOR_API.md: 完整 API 文档

功能特性:
- 支持通过 API 定义工具并自动生成 Agent 代码
- 自动创建 Gitee 仓库并推送代码
- CI/CD 自动构建 ARM64 Docker 镜像并推送到 ACR
- 自动部署到 AKS 并创建 DNS A 记录
- 支持参数化工具函数生成

配置集成:
- LiteLLM Gateway 用于 AI 代码生成
- Gitea Actions 用于 CI/CD 流水线
- Azure DNS 用于域名绑定
- ACR/AKS 用于容器化部署

文件整理:
- 脚本文件移动到 scripts/ 目录
- 文档文件移动到 docs/ 目录
2026-01-27 13:17:35 +00:00

167 lines
7.5 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
##############################################################################
# Agent Manager Kubernetes 部署指南
##############################################################################
cat << 'EOF'
╔════════════════════════════════════════════════════════════════╗
║ Agent Manager - Kubernetes 部署指南 (ARM64) ║
╔════════════════════════════════════════════════════════════════╝
📋 部署前准备
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 确保已安装必要工具:
✓ Docker (支持 buildx)
✓ kubectl
✓ Azure CLI (az)
2. 配置 Azure 凭据:
export AZURE_TENANT_ID="your-tenant-id"
export AZURE_CLIENT_ID="your-client-id"
export AZURE_CLIENT_SECRET="your-client-secret"
export AZURE_SUBSCRIPTION_ID="your-subscription-id"
export AZURE_RESOURCE_GROUP="your-resource-group"
3. 配置 ACR 凭据 (如果使用私有镜像):
export ACR_USERNAME="your-acr-username"
export ACR_PASSWORD="your-acr-password"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 部署方式
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
方式 1: 完整部署(构建 + 部署)
./deploy-to-k8s-arm64.sh
方式 2: 快速部署(仅部署,使用已有镜像)
./quick-deploy-k8s.sh
方式 3: 跳过镜像构建
./deploy-to-k8s-arm64.sh --skip-build
方式 4: 仅构建镜像
./deploy-to-k8s-arm64.sh --skip-deploy
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 配置说明
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. ConfigMap (k8s/agent-manager-configmap.yaml):
- DATABASE_URL: PostgreSQL 连接字符串
- NAMESPACE: 默认命名空间
- AZURE_DNS_ZONE: DNS 域名
2. Secret (k8s/agent-manager-secret.yaml):
- AZURE_TENANT_ID: Azure 租户 ID
- AZURE_CLIENT_ID: Azure 客户端 ID
- AZURE_CLIENT_SECRET: Azure 客户端密钥
3. Deployment (k8s/agent-manager-deployment.yaml):
- replicas: 副本数量(默认 2)
- resources: 资源限制
- nodeSelector: ARM64 节点选择器
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔍 验证部署
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 查看 Pods 状态:
kubectl get pods -n agent-manager
2. 查看服务:
kubectl get svc -n agent-manager
3. 获取外网 IP:
kubectl get svc agent-manager -n agent-manager \
-o jsonpath='{.status.loadBalancer.ingress[0].ip}'
4. 查看日志:
kubectl logs -n agent-manager -l app=agent-manager --tail=100
5. 测试访问:
EXTERNAL_IP=$(kubectl get svc agent-manager -n agent-manager \
-o jsonpath='{.status.loadBalancer.ingress[0].ip}')
curl http://$EXTERNAL_IP/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔧 常用管理命令
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 扩容/缩容
kubectl scale deployment agent-manager -n agent-manager --replicas=3
# 重启 Pod
kubectl rollout restart deployment agent-manager -n agent-manager
# 查看部署状态
kubectl rollout status deployment agent-manager -n agent-manager
# 查看详细信息
kubectl describe deployment agent-manager -n agent-manager
# 进入容器
kubectl exec -it -n agent-manager \
$(kubectl get pod -n agent-manager -l app=agent-manager -o jsonpath='{.items[0].metadata.name}') \
-- /bin/bash
# 更新镜像
kubectl set image deployment/agent-manager \
agent-manager=agnettaiji.azurecr.io/agent-manager:new-tag \
-n agent-manager
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🗑️ 卸载
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
完全卸载 Agent Manager:
./undeploy-k8s.sh
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📂 目录结构
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
agent-manager/
├── Dockerfile.arm64 # ARM64 架构 Dockerfile
├── deploy-to-k8s-arm64.sh # 完整部署脚本
├── quick-deploy-k8s.sh # 快速部署脚本
├── undeploy-k8s.sh # 卸载脚本
└── k8s/
├── agent-manager-namespace.yaml # 命名空间
├── agent-manager-configmap.yaml # 配置
├── agent-manager-secret.yaml # 密钥
├── agent-manager-deployment.yaml # 部署
├── agent-manager-service.yaml # 服务
└── agent-manager-rbac.yaml # 权限
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ 注意事项
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. ARM64 节点: 确保 K8s 集群有 ARM64 架构的节点
2. LoadBalancer: 需要云平台支持 LoadBalancer 类型的 Service
3. 数据库: PostgreSQL 需要可从 K8s 集群访问
4. 权限: Agent Manager 需要集群级别权限来管理其他 Pods
5. 镜像: 首次部署需要先构建并推送 ARM64 镜像到 ACR
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📖 更多信息
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- API 文档: API_DOCUMENTATION.md
- PostgreSQL 迁移: POSTGRESQL_MIGRATION.md
- 快速参考: QUICK_REFERENCE_PGSQL.md
╚════════════════════════════════════════════════════════════════╝
EOF