Siv*_*iva 8 kubernetes kubernetes-ingress
我知道当我们想要使用单个Load Balancer/public IP公开多个服务/路由时,可以使用Ingress.
现在我想将我的Nginx服务器暴露给公众.我有两个选择
service type as LoadBalancer
voila我得到了公共IP现在我可以使用选项1完成我的工作,何时或为什么我会选择选项2什么是在没有Ingress的情况下使用Ingress的nginx的优势?
sur*_*ren 20
入口规则(入口)和入口控制器之间存在差异.因此,从技术上讲,nginx入口控制器和LoadBalancer类型的服务是不可比的.您可以比较入口资源和LoadBalancer类型服务,如下所示.
一般来说:
LoadBalancer
type service是一个L4(TCP)负载均衡器.您可以使用它向外界公开单个应用程序或服务.它将根据目标IP地址和端口平衡负载.
Ingress
type资源将创建一个L7(HTTP/S)负载均衡器.您可以使用它同时公开多个服务,因为L7 LB是应用程序感知的,因此它可以根据应用程序状态确定将流量发送到何处.
入口和入口控制器关系:
Ingress
,或者ingress rules
是ingress controller
分配负载的规则.入口控制器获取数据包,检查入口规则并确定传送数据包的服务.
Nginx Ingress控制器
Nginx入口控制器实际上使用LoadBalancer类型服务作为集群的入口点.然后检查入口规则并分配负载.这可能非常令人困惑.您创建入口资源,它创建HTTP/S负载平衡器.它还为您提供外部IP地址(例如,在GKE上),但是当您尝试点击该IP地址时,连接将被拒绝.
结论:
如果您有一个应用程序,可以使用Loadbalancer类型的服务,比如说myapp.com
您希望映射到IP地址.
你会使用入口资源,如果你有几个应用程序,比如myapp1.com
,myapp1.com/mypath
,myapp2.com
,...,myappn.com
映射到一个IP地址.
由于入口是L7,它能够区分myapp1.com
和myapp1.com/mypath
,它能够将流量路由到正确的服务.
接受的答案已经涵盖了很多东西。所有的原因都是有效的,除此之外,我在 aws 中使用入口控制器的原因是为了最小化成本。我有多个 Web 应用程序在 kubernetes 集群 aws 中运行。为了访问这些应用程序而不是将单个应用程序公开为 LoadBalancer 并创建单个 ELB(每个 ELB 都需要花钱),我将入口控制器服务公开为 LoadBalancer 并为每个应用程序创建入口规则。
步骤包括:
归档时间: |
|
查看次数: |
3823 次 |
最近记录: |