Kubernetes 在GKE中,如何在负载平衡器后面使用入口?
我正在使用k8s部署我的应用程序,它有3个部分。主网站(登录页)、应用程序组件1(仅限管理员)和应用程序组件2(适用于付费用户)。我最近遇到了一种模式,其中有一个主要的外部负载平衡器,应用程序的每个部分都有一个入口。例如:Kubernetes 在GKE中,如何在负载平衡器后面使用入口?,kubernetes,load-balancing,google-kubernetes-engine,kubernetes-ingress,nginx-ingress,Kubernetes,Load Balancing,Google Kubernetes Engine,Kubernetes Ingress,Nginx Ingress,我正在使用k8s部署我的应用程序,它有3个部分。主网站(登录页)、应用程序组件1(仅限管理员)和应用程序组件2(适用于付费用户)。我最近遇到了一种模式,其中有一个主要的外部负载平衡器,应用程序的每个部分都有一个入口。例如: LB -> Ingress1 -> Main App -> Ingress2 -> App Component 1 (only accessible by admins) -> Ingress3 -> App Componen
LB
-> Ingress1 -> Main App
-> Ingress2 -> App Component 1 (only accessible by admins)
-> Ingress3 -> App Component 2 (only accessible by paid users)
像这样的架构很常见吗?
有人能给我举几个很好的例子(使用k8s)来部署这样的应用程序吗。提前谢谢 GKE不支持将入口或负载平衡器用作其他负载平衡器的后端。相反,您可以执行以下操作之一:
另一方面,在入口前面安装负载平衡器对您的布局没有什么好处,因为您不希望在3个入口之间平衡流量。您希望所有流量都到达入口,然后被定向到右后端并在服务吊舱之间进行平衡。GKE不支持将入口或负载平衡器用作其他负载平衡器的后端。相反,您可以执行以下操作之一:
另一方面,在入口前面安装负载平衡器对您的布局没有什么好处,因为您不希望在3个入口之间平衡流量。您希望所有流量到达入口,然后被定向到正确的后端,并在服务吊舱之间保持平衡。我们可以遵循的最常见的方法是创建一个入口,该入口将根据路径转发流量。 比如说,
paths:
- path: /app1/
backend:
serviceName: app_1
servicePort: 80
- path: /app2/
backend:
serviceName: app_2
servicePort: 80
所以“serviceName”是在k8s(LB/NodePort/ClusterIP)中创建的任何服务名称。
最后,在external LB/App GW中使用此创建的入口将您的外部流量转发到您的应用程序。我们可以遵循的最常见的方法是创建一个入口,该入口将根据路径转发流量。 比如说,
paths:
- path: /app1/
backend:
serviceName: app_1
servicePort: 80
- path: /app2/
backend:
serviceName: app_2
servicePort: 80
所以“serviceName”是在k8s(LB/NodePort/ClusterIP)中创建的任何服务名称。
最后,在external LB/App GW中使用这个创建的入口,将您的外部流量转发到您的应用程序。选项3似乎是我的选择。谢谢你-我将在接下来的几天内对此进行测试。选项3看起来是我的选择。谢谢-我将在未来几天内对此进行测试。感谢您的回复,因为我想限制用户访问应用程序的不同部分(其中一部分只能由特定IP地址下的管理员访问)-我将使用Patrick推荐的选项3。再次感谢您抽出时间回答我的问题。感谢您的回答,因为我想限制用户访问应用程序的不同部分(其中一部分只能由特定IP地址下的管理员访问)-我将使用Patrick推荐的选项3。再次感谢您抽出时间回答我的问题。