原因:线上 P24 验收显示 Worker 在每轮准入前逐条恢复媒体、重算候选和查询 attempts,跨地域查询导致 48 个执行槽长期只能使用约 8 至 16 个。\n\n影响:任务首次排队时保存鉴权后的 admission scope 快照,Worker 单次批量读取并只刷新动态总容量;显式重新选路保留完整慢路径。验收模拟器改到非数据库专用 Worker 节点,运行期 85% 作为立即中止硬门禁,80% 继续作为容量认证目标。\n\n验证:Go 全量测试、go vet、govulncheck、真实 PostgreSQL 迁移与跨 Store 集成测试、ShellCheck、发布及验收脚本、OpenAPI、前端 lint/test/build、pnpm audit high、Compose 与 Kubernetes 渲染均通过。
140 lines
3.6 KiB
YAML
140 lines
3.6 KiB
YAML
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: easyai-acceptance-emulator
|
|
namespace: easyai
|
|
labels:
|
|
app.kubernetes.io/name: easyai-acceptance-emulator
|
|
app.kubernetes.io/part-of: easyai-ai-gateway
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: easyai-acceptance-emulator
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/name: easyai-acceptance-emulator
|
|
app.kubernetes.io/part-of: easyai-ai-gateway
|
|
spec:
|
|
nodeSelector:
|
|
# Keep the memory-heavy protocol emulator away from PostgreSQL and
|
|
# control-plane nodes. Any future dedicated Worker node can host it
|
|
# without changing this manifest.
|
|
easyai.io/worker: "true"
|
|
easyai.io/database: "false"
|
|
easyai.io/workload: "true"
|
|
securityContext:
|
|
runAsNonRoot: true
|
|
runAsUser: 10001
|
|
runAsGroup: 10001
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
containers:
|
|
- name: emulator
|
|
image: easyai-api
|
|
command: ["/app/easyai-ai-gateway-acceptance-emulator"]
|
|
env:
|
|
- name: HTTP_ADDR
|
|
value: ":8090"
|
|
ports:
|
|
- name: http
|
|
containerPort: 8090
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /healthz
|
|
port: http
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: "2"
|
|
memory: 1Gi
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
capabilities:
|
|
drop: ["ALL"]
|
|
readOnlyRootFilesystem: true
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: easyai-acceptance-emulator
|
|
namespace: easyai
|
|
spec:
|
|
selector:
|
|
app.kubernetes.io/name: easyai-acceptance-emulator
|
|
ports:
|
|
- name: http
|
|
port: 8090
|
|
targetPort: http
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: easyai-acceptance-callback-collector
|
|
namespace: easyai
|
|
labels:
|
|
app.kubernetes.io/name: easyai-acceptance-callback-collector
|
|
app.kubernetes.io/part-of: easyai-ai-gateway
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: easyai-acceptance-callback-collector
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/name: easyai-acceptance-callback-collector
|
|
app.kubernetes.io/part-of: easyai-ai-gateway
|
|
spec:
|
|
nodeSelector:
|
|
easyai.io/site: hongkong
|
|
easyai.io/workload: "true"
|
|
securityContext:
|
|
runAsNonRoot: true
|
|
runAsUser: 10001
|
|
runAsGroup: 10001
|
|
seccompProfile:
|
|
type: RuntimeDefault
|
|
containers:
|
|
- name: collector
|
|
image: easyai-api
|
|
command: ["/app/easyai-ai-gateway-acceptance-callback-collector"]
|
|
env:
|
|
- name: HTTP_ADDR
|
|
value: ":8091"
|
|
ports:
|
|
- name: http
|
|
containerPort: 8091
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /healthz
|
|
port: http
|
|
resources:
|
|
requests:
|
|
cpu: 20m
|
|
memory: 32Mi
|
|
limits:
|
|
cpu: 250m
|
|
memory: 128Mi
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
capabilities:
|
|
drop: ["ALL"]
|
|
readOnlyRootFilesystem: true
|
|
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: easyai-acceptance-callback-collector
|
|
namespace: easyai
|
|
spec:
|
|
selector:
|
|
app.kubernetes.io/name: easyai-acceptance-callback-collector
|
|
ports:
|
|
- name: http
|
|
port: 8091
|
|
targetPort: http
|