feat(deploy): 切换宁波单节点生产拓扑
移除已停用的香港 API、Web、Worker 和边缘 Service 渲染结果,将 Worker 与容量控制器固定到宁波单实例,并在发布成功后清理旧香港资源。\n\n容量控制器忽略最大副本为零的站点,集群环境允许不再声明香港主机;单节点 production acceptance 不再依赖香港 Service、Deployment 或 SSH 回退。\n\n验证:Go 全量测试与 go vet;迁移安全检查;Kustomize 单节点渲染;ShellCheck;cluster release、production acceptance 和 manual release 测试。
This commit is contained in:
@@ -41,7 +41,6 @@ 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,9 +54,7 @@ AI_GATEWAY_MEDIA_MATERIALIZATION_CONCURRENCY=24
|
||||
AI_GATEWAY_MEDIA_REQUEST_CONCURRENCY=24
|
||||
AI_GATEWAY_WORKER_AUTOSCALING_ENABLED=false
|
||||
AI_GATEWAY_WORKER_MIN_REPLICAS_NINGBO=1
|
||||
AI_GATEWAY_WORKER_MIN_REPLICAS_HONGKONG=1
|
||||
AI_GATEWAY_WORKER_MAX_REPLICAS_NINGBO=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
|
||||
@@ -66,7 +63,7 @@ grep -Fq "\"AI_GATEWAY_REVISION=\${ACTIVE_RELEASE_SHA:-}\"" "$helper"
|
||||
|
||||
# activate_manifest invokes this function inside an && condition. A failed
|
||||
# rollout must still propagate instead of falling through to a stale Ready Pod.
|
||||
if rollout_worker_site hongkong 'registry.example.invalid/api@sha256:deadbeef' && true; then
|
||||
if rollout_worker_site ningbo 'registry.example.invalid/api@sha256:deadbeef' && true; then
|
||||
echo 'failed Worker rollout was reported as successful' >&2
|
||||
exit 1
|
||||
fi
|
||||
@@ -80,16 +77,21 @@ deployment_strategy() {
|
||||
' "$application"
|
||||
}
|
||||
|
||||
for deployment in easyai-worker-ningbo easyai-worker-hongkong; do
|
||||
strategy=$(deployment_strategy "$deployment")
|
||||
grep -Fq ' maxSurge: 0' <<<"$strategy"
|
||||
grep -Fq ' maxUnavailable: 1' <<<"$strategy"
|
||||
done
|
||||
strategy=$(deployment_strategy easyai-worker-ningbo)
|
||||
grep -Fq ' maxSurge: 0' <<<"$strategy"
|
||||
grep -Fq ' maxUnavailable: 1' <<<"$strategy"
|
||||
|
||||
for deployment in easyai-api-ningbo easyai-api-hongkong; do
|
||||
strategy=$(deployment_strategy "$deployment")
|
||||
grep -Fq ' maxSurge: 1' <<<"$strategy"
|
||||
grep -Fq ' maxUnavailable: 0' <<<"$strategy"
|
||||
done
|
||||
strategy=$(deployment_strategy easyai-api-ningbo)
|
||||
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
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 'cluster_release_helper_tests=PASS'
|
||||
|
||||
Reference in New Issue
Block a user