Files
taiji-AI-PAD/k8s/data-ingestion.yaml

120 lines
2.8 KiB
YAML

# Data Ingestion Service Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: data-ingestion
namespace: taiji-ai
labels:
app: data-ingestion
spec:
replicas: 1
selector:
matchLabels:
app: data-ingestion
template:
metadata:
labels:
app: data-ingestion
spec:
containers:
- name: data-ingestion
image: taiji.azurecr.io/data-ingestion:latest
imagePullPolicy: Always
ports:
- containerPort: 8000
name: http
env:
# 环境标识
- name: ENVIRONMENT
value: "production"
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: taiji-secrets
key: database-url
- name: ASYNC_DATABASE_URL
valueFrom:
secretKeyRef:
name: taiji-secrets
key: async-database-url
- name: REDIS_URL
valueFrom:
secretKeyRef:
name: taiji-secrets
key: redis-url
- name: NATS_URL
valueFrom:
configMapKeyRef:
name: taiji-config
key: NATS_URL
- name: RAPIDAPI_KEY
valueFrom:
secretKeyRef:
name: taiji-secrets
key: rapidapi-key
- name: RAPIDAPI_HOST
valueFrom:
configMapKeyRef:
name: taiji-config
key: RAPIDAPI_HOST
- name: OPENROUTER_API_KEY
valueFrom:
secretKeyRef:
name: taiji-secrets
key: openrouter-api-key
- name: OPENROUTER_BASE_URL
valueFrom:
configMapKeyRef:
name: taiji-config
key: OPENROUTER_BASE_URL
- name: APP_ENV
valueFrom:
configMapKeyRef:
name: taiji-config
key: APP_ENV
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: taiji-config
key: LOG_LEVEL
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "1Gi"
cpu: "1000m"
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
# ACR 镜像拉取凭据
imagePullSecrets:
- name: acr-secret
---
apiVersion: v1
kind: Service
metadata:
name: data-ingestion
namespace: taiji-ai
spec:
selector:
app: data-ingestion
ports:
- name: http
port: 8000
targetPort: 8000