优势:
部署步骤:
# 1. 创建命名空间
kubectl apply -f namespace.yaml
# 2. 部署 PVC(持久化存储)
kubectl apply -f pvc.yaml
# 3. 部署 ConfigMap(公开配置)
kubectl apply -f configmap.yaml
# 4. 部署 Secret(敏感信息)
# 注意:先修改 secret.yaml 中的实际值
kubectl apply -f secret.yaml
# 5. 部署 Deployment 和 Service
kubectl apply -f deployment.yaml
# 6. (可选)部署网络策略
kubectl apply -f network-policy.yaml
# 7. 验证部署
kubectl get all -n ad-automation
kubectl get pvc -n ad-automation
# 8. 查看日志
kubectl logs -f -n ad-automation deployment/auto-put-ad-mini
# 9. 端口转发(本地测试)
kubectl port-forward -n ad-automation svc/auto-put-ad-mini 8080:8080
# 10. 测试健康检查
curl http://localhost:8080/health | jq .
# 11. 手动触发任务
curl -X POST http://localhost:8080/trigger | jq .
优势:
部署步骤:
# 1-4. 同上
# 5. 部署 CronJob(替代 Deployment)
kubectl apply -f cronjob.yaml
# 6. 验证
kubectl get cronjob -n ad-automation
kubectl get jobs -n ad-automation
# 7. 手动触发测试
kubectl create job --from=cronjob/auto-put-ad-mini manual-test-1 -n ad-automation
# 8. 查看日志
kubectl logs -n ad-automation job/manual-test-1
Deployment 模式:
kubectl patch configmap ad-config -n ad-automation \
--patch '{"data":{"CRON_SCHEDULE":"0 3 * * *"}}' # 改为凌晨3点
kubectl rollout restart deployment/auto-put-ad-mini -n ad-automation
CronJob 模式:
kubectl edit cronjob auto-put-ad-mini -n ad-automation
# 修改 spec.schedule 字段
# 测试通过后,启用执行开关
kubectl patch configmap ad-config -n ad-automation \
--patch '{"data":{"EXECUTION_ENABLED":"true"}}'
kubectl rollout restart deployment/auto-put-ad-mini -n ad-automation
# 方式1:通过 Secret(推荐)
kubectl patch secret ad-secrets -n ad-automation \
--patch '{"stringData":{"WHITELIST_ACCOUNTS":"80769799,71305011,12345678"}}'
kubectl rollout restart deployment/auto-put-ad-mini -n ad-automation
# 方式2:修改 whitelist.json 并重新构建镜像
kubectl get pods -n ad-automation
kubectl describe pod <pod-name> -n ad-automation
# 实时日志
kubectl logs -f -n ad-automation deployment/auto-put-ad-mini
# 最近 100 行日志
kubectl logs -n ad-automation deployment/auto-put-ad-mini --tail=100
# CronJob 模式查看特定 Job 日志
kubectl logs -n ad-automation job/<job-name>
# 查看 ConfigMap
kubectl get configmap ad-config -n ad-automation -o yaml
# 查看 Secret(base64 编码)
kubectl get secret ad-secrets -n ad-automation -o yaml
# 解码 Secret 值
kubectl get secret ad-secrets -n ad-automation -o jsonpath='{.data.WHITELIST_ACCOUNTS}' | base64 -d
# 进入 Pod 查看输出
POD_NAME=$(kubectl get pods -n ad-automation -l app=auto-put-ad-mini -o jsonpath='{.items[0].metadata.name}')
kubectl exec -it -n ad-automation $POD_NAME -- bash
# 在 Pod 内查看输出
ls -lh /app/outputs/reports/
cat /app/outputs/reports/llm_decisions_*.csv | head
# 或直接执行命令
kubectl exec -n ad-automation $POD_NAME -- ls -lh /app/outputs/reports/
# 查看历史版本
kubectl rollout history deployment/auto-put-ad-mini -n ad-automation
# 回滚到上一个版本
kubectl rollout undo deployment/auto-put-ad-mini -n ad-automation
# 回滚到指定版本
kubectl rollout undo deployment/auto-put-ad-mini --to-revision=2 -n ad-automation
# 暂停 CronJob
kubectl patch cronjob auto-put-ad-mini -n ad-automation -p '{"spec":{"suspend":true}}'
# 删除失败的 Job
kubectl delete job -l app=auto-put-ad-mini -n ad-automation
# 更新镜像
kubectl set image cronjob/auto-put-ad-mini \
decision-engine=your-registry/auto-put-ad-mini:v0.9.0 \
-n ad-automation
# 恢复 CronJob
kubectl patch cronjob auto-put-ad-mini -n ad-automation -p '{"spec":{"suspend":false}}'
# 删除所有资源
kubectl delete -f deployment.yaml
kubectl delete -f cronjob.yaml
kubectl delete -f pvc.yaml
kubectl delete -f configmap.yaml
kubectl delete -f secret.yaml
kubectl delete -f network-policy.yaml
# 或删除整个命名空间(慎用)
kubectl delete namespace ad-automation
Secret 管理:
网络隔离:
资源限制:
最小权限: