【问题标题】:Does ingress controller support both of a Cloud Run service and a private cluster on GKE?入口控制器是否支持 GKE 上的 Cloud Run 服务和私有集群?
【发布时间】:2021-07-14 10:09:01
【问题描述】:

我在 Cloud Run 上实现了一个服务,另一方面,GKE 上的多个服务是相同的。

现在我希望所有这些服务都由同一个负载平衡器路由,该负载平衡器部署有一个入口控制器。

根据 Google 记录的网站,没有信息表明上述功能的入口控制器可以通过 yaml 文件或命令实现。

为了尝试,我更改了 yaml 文件中的规则参数,如下所示。

...
spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: gke-service-a
          servicePort: 80
        path: /a/*
      - backend:
          serviceName: gke-service-b
          servicePort: 80
        path: /b/*
      - backend:
          serviceName: gke-service-c
          servicePort: 80
        path: /c/v1/d/*
      - backend:
          serviceName: cloud-run-service-z
          servicePort: 80
        path: /c/v1/z/*
...

进入时,有一个警告显示'没有吊舱.....', 但是现在消息消失了。(我不知道为什么会这样。显示此消息后没有任何操作。)

是否有任何建议或信息表明入口控制器可以将请求同时路由到云运行服务和 gke 服务?

【问题讨论】:

  • 您是在运行完全托管的 Cloud Run 和单独的 GKE 集群,还是在现有 GKE 集群上启用了 Cloud Run?
  • ·您是否正在运行完全托管的 Cloud Run 目前,是的,我希望这些服务使用相同的负载均衡器进行路由。・ 在现有 GKE 集群上启用 Cloud Run?不,我没有。有没有办法启用此功能或记录信息?
  • 后者是 Cloud Run for Anthos 吗?在这种情况下,我应该订阅 Anthos 吗? cloud.google.com/kuberun/docs/enabling-on-existing-clusters
  • 正确。您将按照找到的链接中的步骤进行操作。完成此操作后,就可以共享相同的入口。见cloud.google.com/architecture/…
  • 谢谢。我想重新考虑这个问题。

标签: google-kubernetes-engine kubernetes-ingress google-cloud-run


【解决方案1】:

如果您创建 GKE cluster with Cloud Run enabled 而不是使用 Cloud Run 的完全托管版本,您可以在 Cloud Run 和 GKE 服务之间“共享”相同的 HTTP(S) 负载均衡器。

完成此操作后,您可以按照详细指南 here 进行操作,该指南说明了如何为 Cloud Run 和 GKE 服务使用相同的 HTTP(S) 负载平衡器。在高层次上, 您将利用部署为 Cloud Run 的一部分的 Istio 组件来创建用于健康检查的虚拟网关,然后您需要修改 Istio 入口网关服务,以便它可以与 GKE/Kubernetes Ingress 一起使用,最后您'将为 Istio 入口服务创建一个 GKE / Kubernetes Ingress。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 2020-01-25
    • 1970-01-01
    • 2019-10-13
    • 1970-01-01
    • 2021-04-12
    • 2021-05-20
    • 1970-01-01
    相关资源
    最近更新 更多