GCP - HTTP(S) 负载均衡器 L7 后端存储桶问题

问题描述 投票:0回答:2

我刚刚从 HTTP(S) L7 负载均衡器(经典)迁移到新的 HTTP(S) L7 负载均衡器。

我目前有两个后端服务运行良好,并且我正在考虑创建两个后端存储桶 - 但是在创建它们时出现错误。

如果我选择简单主机和路径规则并指定主机、路径和后端存储桶 - 它工作正常。

但是,如果我指定高级主机和路径规则,并提供以下配置:

defaultService: projects/MY_PROJECT/global/backendBuckets/my-backend-bucket
name: matcher2
routeRules:
- matchRules:
  - prefixMatch: /
  priority: 0
  routeAction:
    weightedBackendServices:
    - backendService: projects/MY_PROJECT/global/backendBuckets/my-backend-bucket
      weight: 100

我收到这个神秘的错误

Invalid value for field 'resource': '{ "name": "my-loadbalancer", "hostRule": [{ "host": ["myhost.com"], "pathMatcher": ...'. Invalid resource: URL_MAP/ID.my-loadbalancer

以前有人遇到过这个问题吗?即使我正在创建一个新的后端存储桶,我也会收到此消息。我还尝试使用通过经典负载均衡器创建的旧后端存储桶,但我仍然收到此错误?

任何帮助将不胜感激,谢谢。

google-cloud-platform load-balancing gcp-load-balancer
2个回答
2
投票

这个问题实际上是可行的,只需使用不同的yaml,我相信您尝试的是负载均衡器路由下代码指导中的yaml。我也尝试使用代码指南,但收到一条错误消息,其中未创建负载均衡器。

我使用 url 地图文档作为指导,并提出了此配置,并且它使用高级主机和路径工作。

name: video-matcher
pathRules:
- paths:
  - /video/hd
  - /video/hd/*
  service: projects/project id /global/backendBuckets/bucketname

0
投票

您遇到的

"Invalid resource"
错误似乎是当为 URL 映射给出的配置实际上不起作用但仍以某种方式通过其静态分析(至少通过云控制台 UI)时 Google 的响应方式。

使用您给出的示例,我认为问题在于

weightedBackendServices
嵌套在
routeAction
下。由于您只路由到一个后端,因此您可以在 RouteRule 上将其定义为
service

查看更新的示例:

defaultService: projects/MY_PROJECT/global/backendBuckets/my-backend-bucket
name: matcher2
routeRules:
- matchRules:
  - prefixMatch: /
  priority: 1
  service: projects/MY_PROJECT/global/backendBuckets/my-backend-bucket
© www.soinside.com 2019 - 2024. All rights reserved.