Files
taiji-AI-PAD/k8s/test/mcp-server.yaml
T
2026-05-05 14:13:59 +08:00

274 lines
6.7 KiB
YAML

# MCP Server Deployment for Azure AKS (测试环境)
# 测试环境配置 - PostgreSQL 使用 taiji 数据库,Redis 使用测试环境实例
apiVersion: apps/v1
kind: Deployment
metadata:
name: mcp-server
namespace: taiji-ai-test
labels:
app: mcp-server
version: v1
environment: test
spec:
replicas: 1
selector:
matchLabels:
app: mcp-server
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
template:
metadata:
labels:
app: mcp-server
version: v1
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "8000"
prometheus.io/path: "/metrics"
spec:
containers:
- name: mcp-server
image: taiji.azurecr.io/mcp-server:latest
imagePullPolicy: Always
ports:
- containerPort: 8000
name: http
protocol: TCP
env:
# 应用环境配置
- name: ENVIRONMENT
value: "test"
- name: APP_ENV
valueFrom:
configMapKeyRef:
name: taiji-config
key: APP_ENV
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: taiji-config
key: LOG_LEVEL
# 数据库配置 (Azure Database for PostgreSQL - 测试库 taiji)
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: taiji-secrets
key: database-url
- name: ASYNC_DATABASE_URL
valueFrom:
secretKeyRef:
name: taiji-secrets
key: async-database-url
# Redis配置 (Azure Cache for Redis - 测试环境)
- name: REDIS_URL
valueFrom:
secretKeyRef:
name: taiji-secrets
key: redis-url
# NATS配置 (K8s内部服务)
- name: NATS_URL
valueFrom:
configMapKeyRef:
name: taiji-config
key: NATS_URL
# LiteLLM网关配置
- name: LITELLM_URL
valueFrom:
configMapKeyRef:
name: taiji-config
key: LITELLM_URL
- name: LLM_BASE_URL
valueFrom:
configMapKeyRef:
name: taiji-config
key: LITELLM_URL
- name: LITELLM_MASTER_KEY
valueFrom:
secretKeyRef:
name: taiji-secrets
key: litellm-master-key
- name: LITELLM_API_KEY
valueFrom:
secretKeyRef:
name: taiji-secrets
key: litellm-master-key
# Agent Manager 配置 (AKS内部服务)
- name: AGENT_MANAGER_URL
valueFrom:
configMapKeyRef:
name: taiji-config
key: AGENT_MANAGER_URL
- name: AGENT_K8S_NAMESPACE
valueFrom:
configMapKeyRef:
name: taiji-config
key: AGENT_K8S_NAMESPACE
# JWT配置
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: taiji-secrets
key: jwt-secret
- name: JWT_SECRET_KEY
valueFrom:
secretKeyRef:
name: taiji-secrets
key: jwt-secret
- name: JWT_ALGORITHM
valueFrom:
configMapKeyRef:
name: taiji-config
key: JWT_ALGORITHM
- name: JWT_EXPIRE_MINUTES
valueFrom:
configMapKeyRef:
name: taiji-config
key: JWT_EXPIRE_MINUTES
# SMTP邮箱配置
- name: SMTP_SERVER
valueFrom:
configMapKeyRef:
name: taiji-config
key: SMTP_SERVER
- name: SMTP_PORT
valueFrom:
configMapKeyRef:
name: taiji-config
key: SMTP_PORT
- name: SMTP_EMAIL
valueFrom:
configMapKeyRef:
name: taiji-config
key: SMTP_EMAIL
- name: SMTP_USE_SSL
valueFrom:
configMapKeyRef:
name: taiji-config
key: SMTP_USE_SSL
- name: SMTP_PASSWORD
valueFrom:
secretKeyRef:
name: taiji-secrets
key: smtp-password
# PayPal 支付配置 (Sandbox 测试环境)
- name: PAYPAL_CLIENT_ID
valueFrom:
secretKeyRef:
name: taiji-secrets
key: paypal-client-id
- name: PAYPAL_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: taiji-secrets
key: paypal-client-secret
- name: PAYPAL_ENVIRONMENT
value: "sandbox"
- name: PAYPAL_WEBHOOK_ID
valueFrom:
secretKeyRef:
name: taiji-secrets
key: paypal-webhook-id
# 健康检查
livenessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 60
periodSeconds: 30
timeoutSeconds: 10
failureThreshold: 5
readinessProbe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 10
failureThreshold: 5
# 资源限制 (测试环境使用较少资源)
resources:
requests:
memory: "256Mi"
cpu: "100m"
limits:
memory: "512Mi"
cpu: "500m"
# 挂载卷
volumeMounts:
- name: logs
mountPath: /app/logs
# 卷定义
volumes:
- name: logs
emptyDir: {}
# 重启策略
restartPolicy: Always
# ACR 镜像拉取凭据
imagePullSecrets:
- name: acr-secret
---
# MCP Server Service
apiVersion: v1
kind: Service
metadata:
name: mcp-server
namespace: taiji-ai-test
labels:
app: mcp-server
spec:
type: ClusterIP
selector:
app: mcp-server
ports:
- name: http
port: 8000
targetPort: 8000
protocol: TCP
---
# HorizontalPodAutoscaler - 自动扩缩容 (测试环境配置较低)
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: mcp-server-hpa
namespace: taiji-ai-test
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: mcp-server
minReplicas: 1
maxReplicas: 3
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 80