Google负载均衡器同域名两Backend Bucket流量50:50分配失败求助
问题原因分析
你的配置失败主要有两个核心问题:
- 资源引用字段错误:你在
weightedBackendServices里用了backendService字段,但实际指向的是GCP Backend Bucket,应该改用backendBucket字段。 - 资源路径格式错误:第二个JSON配置里用了完整的HTTP API URL(
https://www.googleapis.com/...),但GCP要求使用项目内的相对资源路径(projects/${projectName}/global/backendBuckets/${backEndBucketName})。
修正后的配置示例
YAML格式(适用于负载均衡YAML编辑器)
defaultService: projects/${projectName}/global/backendBuckets/${backEndBucket1Name} name: ${my-lb-name} hostRules: - hosts: - ${my-hosting-domain-name} pathMatcher: matcher1 pathMatchers: - defaultService: projects/${projectName}/global/backendBuckets/${backEndBucket1Name} name: matcher1 routeRules: - matchRules: - prefixMatch: / priority: 1 routeAction: weightedBackendServices: - backendBucket: projects/${projectName}/global/backendBuckets/${backEndBucket1Name} weight: 50 - backendBucket: projects/${projectName}/global/backendBuckets/${backEndBucket2Name} weight: 50
JSON格式(适用于gcloud CLI)
{ "defaultService": "projects/${projectName}/global/backendBuckets/${backEndBucket1Name}", "fingerprint": "${myFingerPrint}", "hostRules": [ { "hosts": [ "${my-hosting-domain-name}" ], "pathMatcher": "matcher1" } ], "name": "${my-lb-name}", "pathMatchers": [ { "defaultService": "projects/${projectName}/global/backendBuckets/${backEndBucket1Name}", "name": "matcher1", "routeRules": [ { "matchRules": [ { "prefixMatch": "/" } ], "priority": 1, "routeAction": { "weightedBackendServices": [ { "backendBucket": "projects/${projectName}/global/backendBuckets/${backEndBucket1Name}", "weight": 50 }, { "backendBucket": "projects/${projectName}/global/backendBuckets/${backEndBucket2Name}", "weight": 50 } ] } } ] } ] }
额外注意事项
- 确保两个Backend Bucket都已正确配置:开启静态网站托管,设置好主页面(比如
index.html)和错误页面,并且Bucket的权限允许负载均衡服务账号访问(可以通过给Bucket添加roles/storage.objectViewer权限给service-${projectNumber}@gcp-sa-loadbalancing.iam.gserviceaccount.com)。 - 用gcloud CLI更新URL Map时,使用命令:
或者如果是JSON格式:gcloud compute url-maps update ${my-lb-name} --source urlmap.yamlgcloud compute url-maps update ${my-lb-name} --source urlmap.json - 配置完成后,等待负载均衡配置同步(通常需要几分钟),然后测试访问是否按50:50分配流量。
内容的提问来源于stack exchange,提问作者ipimfmw
相关产品推荐
相关产品推荐

