我正在尝试将流量路由到 GCE 上的静态存储桶。现在我正在使用入口,但在这里找到了谷歌的文档:
我一直通过,但在主机和路径菜单中进行 url 映射时无法选择“后端存储桶”......即使它列在后端存储桶下。可以选择“后端服务”选项,但禁用后端存储桶菜单。有谁知道更好的教程,或者将流量路由到静态内容存储桶的更好方法?
我可以在入口 yaml 中指定它吗?
我正在尝试将流量路由到 GCE 上的静态存储桶。现在我正在使用入口,但在这里找到了谷歌的文档:
我一直通过,但在主机和路径菜单中进行 url 映射时无法选择“后端存储桶”......即使它列在后端存储桶下。可以选择“后端服务”选项,但禁用后端存储桶菜单。有谁知道更好的教程,或者将流量路由到静态内容存储桶的更好方法?
我可以在入口 yaml 中指定它吗?
看起来这将在 Kubernetes 1.19中可用
但是请注意,1.19 在 GKE 上尚不可用(截至本文发布之时),但无论如何我认为这对登陆这里的人来说是有用的信息。当 1.19 可用时,我会尝试并更新此答案。
为了预览这在配置中的外观,该功能的拉取请求包括一个示例
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-resource-backend
spec:
defaultBackend:
resource:
apiGroup: k8s.example.com
kind: StorageBucket
name: static-assets
rules:
- http:
paths:
- path: /icons
pathType: ImplementationSpecific
backend:
resource:
apiGroup: k8s.example.com
kind: StorageBucket
name: icon-assets
GCE Ingress yaml 规范目前不支持指定“后端存储桶”。
如果您修改由 Ingress 控制器创建的负载均衡器以将一些流量路由到后端存储桶(通过编辑其 URL 映射),您的更改将被 Ingress 控制器定期覆盖。
您唯一的选择可能是为您的“后端存储桶”创建一个单独的负载均衡器。
如果您启用ConfigConnector,您可以使用它从 GKE 内的资源(例如您的 Ingress)中引用在 GKE 之外创建的资源。您将使用外部引用来执行此操作。
或者,如果您想在 GKE 中创建/管理存储桶,您可以使用StorageBucket自定义资源定义来执行此操作。
这可能看起来像这样(更新:我使用 GKE 1.20 尝试过,但它不起作用):
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-resource-backend
spec:
defaultBackend:
resource:
apiGroup: resourcemanager.cnrm.cloud.google.com
kind: StorageBucket
name: static-assets
rules:
- http:
paths:
- path: /icons
pathType: ImplementationSpecific
backend:
resource:
apiGroup: resourcemanager.cnrm.cloud.google.com
kind: StorageBucket
name: icon-assets