feat(release): 固定启用香港异步 Worker

将生产 Worker 拓扑固定为宁波 1 个、香港 1 个,并让发布、容量配置和回滚流程持续保留香港 Worker。当前仍只使用宁波 PostgreSQL,关闭横向自动扩缩容,避免依赖数据库同步副本。

验证:API 全量 go test、迁移安全检查、cluster release helper、manual release、bash -n、ShellCheck、Kustomize 渲染均通过。
This commit is contained in:
2026-08-04 20:33:06 +08:00
parent fe8dcb40ca
commit 0b2bd1d512
5 changed files with 55 additions and 29 deletions
+17 -4
View File
@@ -41,6 +41,7 @@ kubectl=("$tmp/kubectl")
NAMESPACE=easyai
ACTIVE_RELEASE_SHA=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
AI_GATEWAY_WORKER_REPLICAS_NINGBO=1
AI_GATEWAY_WORKER_REPLICAS_HONGKONG=1
AI_GATEWAY_ASYNC_WORKER_INSTANCE_HARD_LIMIT=24
AI_GATEWAY_ASYNC_WORKER_HARD_LIMIT=48
AI_GATEWAY_ASYNC_WORKER_GLOBAL_HARD_LIMIT=48
@@ -55,6 +56,8 @@ AI_GATEWAY_MEDIA_REQUEST_CONCURRENCY=24
AI_GATEWAY_WORKER_AUTOSCALING_ENABLED=false
AI_GATEWAY_WORKER_MIN_REPLICAS_NINGBO=1
AI_GATEWAY_WORKER_MAX_REPLICAS_NINGBO=1
AI_GATEWAY_WORKER_MIN_REPLICAS_HONGKONG=1
AI_GATEWAY_WORKER_MAX_REPLICAS_HONGKONG=1
AI_GATEWAY_WORKER_TARGET_OUTSTANDING_PER_REPLICA=48
AI_GATEWAY_WORKER_CPU_REQUEST_MILLICORES=500
AI_GATEWAY_WORKER_MEMORY_REQUEST_MIB=512
@@ -67,6 +70,10 @@ if rollout_worker_site ningbo 'registry.example.invalid/api@sha256:deadbeef' &&
echo 'failed Worker rollout was reported as successful' >&2
exit 1
fi
if rollout_worker_site hongkong 'registry.example.invalid/api@sha256:deadbeef' && true; then
echo 'failed Hong Kong Worker rollout was reported as successful' >&2
exit 1
fi
deployment_strategy() {
local deployment=$1
@@ -86,12 +93,18 @@ grep -Fq ' maxSurge: 1' <<<"$strategy"
grep -Fq ' maxUnavailable: 0' <<<"$strategy"
grep -Fq 'name: easyai-api-hongkong' "$root/deploy/kubernetes/production/kustomization.yaml"
grep -Fq 'name: easyai-worker-hongkong' "$root/deploy/kubernetes/production/kustomization.yaml"
grep -Fq 'name: easyai-web-hongkong' "$root/deploy/kubernetes/production/kustomization.yaml"
if grep -Fq 'AI_GATEWAY_WORKER_REPLICAS_HONGKONG=' \
"$root/deploy/kubernetes/easyai-ai-gateway-cluster-release.conf.example"; then
echo 'Hong Kong Worker capacity remains in the single-node release environment' >&2
if grep -Fq 'name: easyai-worker-hongkong' \
"$root/deploy/kubernetes/production/kustomization.yaml"; then
echo 'Hong Kong Worker is still deleted from the production desired state' >&2
exit 1
fi
grep -Fq 'AI_GATEWAY_WORKER_REPLICAS_HONGKONG=1' \
"$root/deploy/kubernetes/easyai-ai-gateway-cluster-release.conf.example"
grep -Fq "hongkong) replicas=\$AI_GATEWAY_WORKER_REPLICAS_HONGKONG" "$helper"
hongkong_strategy=$(deployment_strategy easyai-worker-hongkong)
grep -Fq ' replicas: 1' <<<"$hongkong_strategy"
grep -Fq 'easyai.io/worker-only' <<<"$hongkong_strategy"
echo 'cluster_release_helper_tests=PASS'