【发布时间】:2016-02-17 01:52:40
【问题描述】:
我有以下设置: k8s集群A,包含服务SA k8s 集群 B,包含服务 SB,以及将流量路由到 SB 的 HTTP 入口
是否可以将服务 SA 添加为入口路径之一的后端服务?如果是这样,我如何在入口配置文件中引用它? (以通常的方式使用选择器不起作用,大概是因为我们在不同的集群中)
【问题讨论】:
标签: google-compute-engine kubernetes google-kubernetes-engine
我有以下设置: k8s集群A,包含服务SA k8s 集群 B,包含服务 SB,以及将流量路由到 SB 的 HTTP 入口
是否可以将服务 SA 添加为入口路径之一的后端服务?如果是这样,我如何在入口配置文件中引用它? (以通常的方式使用选择器不起作用,大概是因为我们在不同的集群中)
【问题讨论】:
标签: google-compute-engine kubernetes google-kubernetes-engine
入口对象有助于为单个集群配置 HTTP(S) 负载平衡。他们没有多个集群的概念,所以他们不会有你想要完成的配置语言(也许他们会用Ubernetes,但他们今天肯定没有)。
结果是您可以绕过 Ingress 配置并手动配置路由(毕竟,Ingress 实际上只是典型 L7 配置的易用快捷方式)。您可以在 GCP 中创建自己的 L7 配置并设置基于路径的转发以路由到不同的后端组。然后,您可以将后端组分配给您在每个集群中配置的 NodePort 服务。
粗略的步骤是:
NodePort 服务gcloud compute instance-groups managed set-named-ports ...)gcloud compute backend-services create ...)gcloud compute backend-services add-backend ...)gcloud compute url-maps create ...)gcloud compute target-http-proxies create ...)gcloud compute forwarding-rules create ...)【讨论】:
只是在上面罗伯特所说的基础上再补充一点。首先,您需要在 NodePort 服务中指定一个特定的 nodePort。然后,将该端口号用于“命名端口”和运行状况检查。最后,您创建的防火墙规则也必须允许该端口。
作为初学者,我确实发现使用控制台让配置变得更加容易。
【讨论】: