kubernetes中负载均衡机制Ingress的示例分析-创新互联

这篇文章将为大家详细讲解有关kubernetes中负载均衡机制Ingress的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

专注于为中小企业提供做网站、网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业铅山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

一:前言
Kubernetes在设计之初就充分考虑了针对容器的服务发现与负载均衡机制,提供了Service资源,并通过kube-proxy配合cloud provider来适应不同的应用场景。随着kubernetes用户户的激增,用户场景的不断丰富,又产生了一些新的负载均衡机制。目前,kubernetes中的负载均衡?致可以分为以下几种机制:

1.Service(NodePort): 直接用Service提供cluster内部的负载均衡,通过在集群的每个node上暴露一个端口,然后将这个端口映射到某个具体的service来实现的,虽然每个node的端口有很多(默认的取值范围是 30000-32767),但是由于安全性和易用性(服务多了就乱了,还有端口冲突问题)实际使用可能并不多。

2.Ingress Controller: 还是用Service提供cluster内部的负载均衡,但是通过自定义LB提供外部访问。

3.Service Load Balancer:通过向底层云平台申请创建一个负载均衡器来向外暴露服务;目前LoadBlancer Service支持的云平台已经相对完善,比如国外的GCE、DigitalOcean,国内的 阿里云,私有云 OpenStack 等等,由于LoadBlancer Service深度结合了云平台,所以只能在一些云平台上来使用。

4.Custom Load Balancer:自定义负载均衡,并替代kube-proxy,一般在物理部署Kubernetes时使用,方便接入公司已有的外部服务。

二:Service

Service是对一组提供相同功能的Pods的抽象,并为它们提供一个统一的入口。借助Service,应用可以方便的实现服务发现与负载均衡,并实现应用的零宕机升级。Service通过标签来选取服务后端,一般配合Replication Controller或者Deployment 来保证后端容器的正常运行。
Service有三种类型:

1.Cluster Ip: 默认类型,自动分配一个仅cluster内部可以访问的虚拟IP
2.NodePort : 在ClusterIp基础上为Service在每台机器上绑定一个端口,这样可以通过<NodeIP>:NodePort来访问该服务。
3.LoadBalancer:在NodePort的基础上,借助cloud provider创建一个外部的负载均衡器,并将请求转发到<NodeIP>:NodePort

三:Ingress Controller

Service 虽然解决了服务发现和负载均衡的问题,但对外访问的时候,NodePort类型需要在外部搭建额外的负载均衡,而LoadBalancer需要Kubernetes必须跑在支持的cloud provider上面。 Ingress就是为了解决这些限制的。

Ingress 是一个规则的集合,它允许集群外的流量通过一定的规则到达集群内的 Service 。 request--->ingress--->service.

Ingress由三个组件组成:

1.反向代理负载均衡器:即常见的负载均衡软件,如 nginx、Haproxy 等

2.Ingress Controller: kubernetes API 进行交互,实时的感知后端 service、pod 等变化, Ingress Controller 再结合下文的 Ingress 生成配置,然后更新反向代理负载均衡器,并刷新其配置,实现动态服务发现与更新

3.Ingress:规则集合;定义了域名与Kubernetes的service的对应关系;这个规则将与 Ingress Controller 结合, Ingress Controller 将其动态写入到负载均衡器配置中,从而实现整体的服务发现和负载均衡。

四:Service Load Balancer
在Ingress出现以前,Service Load Balancer谁推荐的解决Service局限性的方式。Service Load Balancer将haproxy跑在容器中,并监控service和endpoint的变化,通过容器IP对外提供4层和7层负载均衡服务。

五:Custom Load Balancer
自定义组件,代替kube-proxy来做负载均衡。如nginx plus, kube2haproxy等。

六:Endpoints
有几种情况需要用到没有selector的service
1.使用kubernetes集群外部的数据库时。
2.service中用到了其它namespace或kubernetes集群中的service
3.在kubernetes的工作负载与集群外的后端之间互相迁移。

七: Traefik
Traefik是?款开源的反向代理与负载均衡?具。它最?的优点是能够与常?的微服务系统直接整合,可以实现?动化动态配置。?前?持Docker,Swarm, Mesos/Marathon, Mesos, Kubernetes, Consul, Etcd, Zookeeper,BoltDB, Rest API等等后端模型。

kubernetes中负载均衡机制Ingress的示例分析

kubernetes中负载均衡机制Ingress的示例分析

关于“kubernetes中负载均衡机制Ingress的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

网站名称:kubernetes中负载均衡机制Ingress的示例分析-创新互联
URL链接:https://www.cdcxhl.com/article44/shohe.html

成都网站建设公司_创新互联,为您提供网站建设搜索引擎优化微信小程序电子商务营销型网站建设移动网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

营销型网站建设