我一直在将我们的应用程序迁移到使用Gateway
(gke-l7-global-external-managed
)。
部署的一部分是“审查”应用程序,例如
apiVersion: gateway.networking.k8s.io/v1beta1
kind: HTTPRoute
metadata:
labels:
# {{ include "app.resource_labels" . | indent 4 }}
name: '{{ .Release.Name }}'
spec:
parentRefs:
- namespace: contra
sectionName: https
name: contra-gateway
hostnames:
- web-app-{{ .Values.app.deployment.slug }}.contra.dev
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: '{{ .Release.Name }}'
port: 80
kind: Service
每个审核应用程序都有一个自定义子域和自定义 URL 路径。
我们有许多审查并行存在的应用程序,并且在尝试使用部署它们时遇到了以下限制gke-l7-global-external-managed
:
- lastTransitionTime: "2023-08-18T23:17:20Z"
message: 'error cause: gceSync: generic::failed_precondition: Update: Value
for field ''resource.pathMatchers[50]'' is too large: maximum size 50 element(s);
actual size 88.'
observedGeneration: 1
reason: ReconciliationFailed
status: "False"
type: Reconciled
Gateway
对于具有数千条 URL 路径规则的应用程序,我该如何利用配额设置为仅 50?
似乎有一个相关的功能请求自 2019 年以来一直开放,但没有太多活动。
https://issuetracker.google.com/issues/126946582
但是,我感觉我在这里遗漏了一些关键的东西。我遗漏了Gateway
/ /我的应用程序之间应该存在的抽象吗?HTTPRoute