114 lines
2.5 KiB
YAML
114 lines
2.5 KiB
YAML
|
|
apiVersion: apps/v1
|
||
|
|
kind: Deployment
|
||
|
|
metadata:
|
||
|
|
name: flask-monitor
|
||
|
|
labels:
|
||
|
|
app: flask-monitor
|
||
|
|
spec:
|
||
|
|
replicas: 1
|
||
|
|
selector:
|
||
|
|
matchLabels:
|
||
|
|
app: flask-monitor
|
||
|
|
template:
|
||
|
|
metadata:
|
||
|
|
labels:
|
||
|
|
app: flask-monitor
|
||
|
|
spec:
|
||
|
|
containers:
|
||
|
|
- name: monitor
|
||
|
|
image: flask-prompt-master-monitor:latest
|
||
|
|
env:
|
||
|
|
- name: APP_URL
|
||
|
|
value: "http://flask-prompt-master-service:80"
|
||
|
|
- name: MONITOR_INTERVAL
|
||
|
|
value: "30"
|
||
|
|
resources:
|
||
|
|
requests:
|
||
|
|
memory: "128Mi"
|
||
|
|
cpu: "100m"
|
||
|
|
limits:
|
||
|
|
memory: "256Mi"
|
||
|
|
cpu: "200m"
|
||
|
|
volumeMounts:
|
||
|
|
- name: logs
|
||
|
|
mountPath: /app/logs
|
||
|
|
livenessProbe:
|
||
|
|
exec:
|
||
|
|
command:
|
||
|
|
- python
|
||
|
|
- -c
|
||
|
|
- "import requests; requests.get('$APP_URL/health')"
|
||
|
|
initialDelaySeconds: 60
|
||
|
|
periodSeconds: 60
|
||
|
|
volumes:
|
||
|
|
- name: logs
|
||
|
|
persistentVolumeClaim:
|
||
|
|
claimName: logs-pvc
|
||
|
|
---
|
||
|
|
apiVersion: apps/v1
|
||
|
|
kind: Deployment
|
||
|
|
metadata:
|
||
|
|
name: flask-log-manager
|
||
|
|
labels:
|
||
|
|
app: flask-log-manager
|
||
|
|
spec:
|
||
|
|
replicas: 1
|
||
|
|
selector:
|
||
|
|
matchLabels:
|
||
|
|
app: flask-log-manager
|
||
|
|
template:
|
||
|
|
metadata:
|
||
|
|
labels:
|
||
|
|
app: flask-log-manager
|
||
|
|
spec:
|
||
|
|
containers:
|
||
|
|
- name: log-manager
|
||
|
|
image: flask-prompt-master-log-manager:latest
|
||
|
|
resources:
|
||
|
|
requests:
|
||
|
|
memory: "64Mi"
|
||
|
|
cpu: "50m"
|
||
|
|
limits:
|
||
|
|
memory: "128Mi"
|
||
|
|
cpu: "100m"
|
||
|
|
volumeMounts:
|
||
|
|
- name: logs
|
||
|
|
mountPath: /app/logs
|
||
|
|
volumes:
|
||
|
|
- name: logs
|
||
|
|
persistentVolumeClaim:
|
||
|
|
claimName: logs-pvc
|
||
|
|
---
|
||
|
|
apiVersion: batch/v1
|
||
|
|
kind: CronJob
|
||
|
|
metadata:
|
||
|
|
name: log-maintenance
|
||
|
|
spec:
|
||
|
|
schedule: "0 2 * * *" # 每天凌晨2点执行
|
||
|
|
jobTemplate:
|
||
|
|
spec:
|
||
|
|
template:
|
||
|
|
spec:
|
||
|
|
containers:
|
||
|
|
- name: log-maintenance
|
||
|
|
image: flask-prompt-master-log-manager:latest
|
||
|
|
command: ["python", "log_manager.py"]
|
||
|
|
volumeMounts:
|
||
|
|
- name: logs
|
||
|
|
mountPath: /app/logs
|
||
|
|
volumes:
|
||
|
|
- name: logs
|
||
|
|
persistentVolumeClaim:
|
||
|
|
claimName: logs-pvc
|
||
|
|
restartPolicy: OnFailure
|
||
|
|
---
|
||
|
|
apiVersion: v1
|
||
|
|
kind: ConfigMap
|
||
|
|
metadata:
|
||
|
|
name: monitor-config
|
||
|
|
data:
|
||
|
|
monitor-interval: "30"
|
||
|
|
alert-threshold: "2.0"
|
||
|
|
retention-days: "30"
|
||
|
|
max-file-size: "10485760" # 10MB
|