具有通配符证书管理器证书的 GKE 网关

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

我正在尝试使用通过 Certificate Manager 管理的通配符证书来设置 GKE Gateway 和 HTTPS 侦听器。

我面临的问题是不是在提供证书方面,这是按照DNS授权教程这个答案成功完成的。我已成功配置通配符证书,该证书由

gcloud certificate-manager certificates describe <cert-name>
显示为
ACTIVE
并且 域及其通配符子域上的
AUTHORIZED
。我还配置了关联的证书映射和映射条目(全部通过 Terraform),并在 Cloud DNS 中为其创建了一个全局静态 IP 地址和通配符 A 记录。

但是,当我尝试在 GKE 网关资源中使用此证书和地址时,资源会“卡住”(永远不会达到同步阶段),并且没有配置 HTTPS GCLB,如通过

gcloud
或 Cloud Console 看到的那样。

这是我尝试使用的配置:

kind: Gateway
apiVersion: gateway.networking.k8s.io/v1beta1
metadata:
  name: external-https
  annotations:
    networking.gke.io/certmap: gke-gateway
spec:
  gatewayClassName: gke-l7-gxlb
  listeners:
  - name: http
    protocol: HTTP
    port: 80
    allowedRoutes:
      kinds:
      - kind: HTTPRoute
  - name: https
    protocol: HTTPS
    port: 443
    allowedRoutes:
      kinds:
      - kind: HTTPRoute
  addresses:
  - type: NamedAddress
    value: gke-gateway

我尝试了此配置的多种不同组合,包括使用显式

IPAddress
或不使用
allowedRoutes
。但无论我怎么努力,似乎都不起作用。我只能在
ADD
的输出中看到初始
UPDATE
kubectl describe gateway external-http
事件,而且在任何地方都找不到它的日志(因为 GKE 网关控制器是 GKE 控制平面的一部分,并且没有任何日志)根据我的理解,向客户公开的日志记录)。

我唯一一次能够使内部或外部网关工作是在使用 HTTP 协议时,即没有证书时。因此,我认为这与 HTTPS 有关,更具体地说,可能与链接到托管通配符证书有关。

此外,我应该提到的是,即使在重用以前有效的 HTTP 配置时,我部署网关的尝试大多数时候都会失败(即资源以同样的方式“卡住”)。我不确定这种不稳定的根源是什么(除了一些内部配额之外),但我想这完全是预料之中的,因为该服务仍处于测试阶段。

是否有人能够实际配置带有 HTTPS 侦听器和通配符证书的网关,以及如何配置?

google-cloud-platform google-kubernetes-engine kubernetes-gateway-api
1个回答
0
投票

也许您应该使用 gke-l7-global-external-management

© www.soinside.com 2019 - 2024. All rights reserved.