是否可以使用1个Kubernetes入口对象将流量路由到不同群集中的k8s服务?

Ana*_*lin 3 google-compute-engine kubernetes google-kubernetes-engine

我有以下设置:k8s集群A,包含服务SA k8s集群B,包含服务SB,以及将流量路由到SB的HTTP入口

是否可以将服务SA添加为入口路径之一的后端服务?如果是这样,我如何在入口配置文件中引用它?(以通常的方式使用选择器不起作用,大概是因为我们在不同的集群中)

Rob*_*ley 7

Ingress对象有助于为单个群集配置HTTP(S)负载平衡.他们没有多个集群的概念,所以他们不会有你想要完成的配置语言(也许他们会使用Ubernetes,但他们今天肯定不会).

结果是您可以绕过Ingress配置并手动配置路由(毕竟,Ingress实际上只是一个典型L7配置的易用快捷方式).您可以在GCP中创建自己的L7配置,并设置基于路径的转发以路由到不同的后端组.然后,您可以将后端组分配给NodePort在每个群集中配置的服务.

粗略的步骤是:

  1. NodePort在每个群集中创建服务
  2. 为每个服务创建HTTP运行状况检查
  3. 添加防火墙规则以允许http运行状况检查到达后端
  4. 将服务添加到群集的实例组(例如gcloud compute instance-groups managed set-named-ports ...)
  5. 为负载均衡器添加后端服务(例如gcloud compute backend-services create ...)
  6. 将群集的后端添加到此后端服务(例如gcloud compute backend-services add-backend ...)
  7. 将该URL映射到后端服务(例如gcloud compute url-maps create ...)
  8. 为该后端服务创建负载平衡代理(例如gcloud compute target-http-proxies create ...)
  9. 为该代理创建转发规则(例如gcloud compute forwarding-rules create ...)