kubernetes中負(fù)載均衡機(jī)制Ingress的示例分析-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)kubernetes中負(fù)載均衡機(jī)制Ingress的示例分析,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

專注于為中小企業(yè)提供做網(wǎng)站、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)鉛山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

一:前言
Kubernetes在設(shè)計(jì)之初就充分考慮了針對(duì)容器的服務(wù)發(fā)現(xiàn)與負(fù)載均衡機(jī)制,提供了Service資源,并通過(guò)kube-proxy配合cloud provider來(lái)適應(yīng)不同的應(yīng)用場(chǎng)景。隨著kubernetes用戶戶的激增,用戶場(chǎng)景的不斷豐富,又產(chǎn)生了一些新的負(fù)載均衡機(jī)制。目前,kubernetes中的負(fù)載均衡?致可以分為以下幾種機(jī)制:

1.Service(NodePort): 直接用Service提供cluster內(nèi)部的負(fù)載均衡,通過(guò)在集群的每個(gè)node上暴露一個(gè)端口,然后將這個(gè)端口映射到某個(gè)具體的service來(lái)實(shí)現(xiàn)的,雖然每個(gè)node的端口有很多(默認(rèn)的取值范圍是 30000-32767),但是由于安全性和易用性(服務(wù)多了就亂了,還有端口沖突問(wèn)題)實(shí)際使用可能并不多。

2.Ingress Controller: 還是用Service提供cluster內(nèi)部的負(fù)載均衡,但是通過(guò)自定義LB提供外部訪問(wèn)。

3.Service Load Balancer:通過(guò)向底層云平臺(tái)申請(qǐng)創(chuàng)建一個(gè)負(fù)載均衡器來(lái)向外暴露服務(wù);目前LoadBlancer Service支持的云平臺(tái)已經(jīng)相對(duì)完善,比如國(guó)外的GCE、DigitalOcean,國(guó)內(nèi)的 阿里云,私有云 OpenStack 等等,由于LoadBlancer Service深度結(jié)合了云平臺(tái),所以只能在一些云平臺(tái)上來(lái)使用。

4.Custom Load Balancer:自定義負(fù)載均衡,并替代kube-proxy,一般在物理部署Kubernetes時(shí)使用,方便接入公司已有的外部服務(wù)。

二:Service

Service是對(duì)一組提供相同功能的Pods的抽象,并為它們提供一個(gè)統(tǒng)一的入口。借助Service,應(yīng)用可以方便的實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)與負(fù)載均衡,并實(shí)現(xiàn)應(yīng)用的零宕機(jī)升級(jí)。Service通過(guò)標(biāo)簽來(lái)選取服務(wù)后端,一般配合Replication Controller或者Deployment 來(lái)保證后端容器的正常運(yùn)行。
Service有三種類型:

1.Cluster Ip: 默認(rèn)類型,自動(dòng)分配一個(gè)僅cluster內(nèi)部可以訪問(wèn)的虛擬IP
2.NodePort : 在ClusterIp基礎(chǔ)上為Service在每臺(tái)機(jī)器上綁定一個(gè)端口,這樣可以通過(guò)<NodeIP>:NodePort來(lái)訪問(wèn)該服務(wù)。
3.LoadBalancer:在NodePort的基礎(chǔ)上,借助cloud provider創(chuàng)建一個(gè)外部的負(fù)載均衡器,并將請(qǐng)求轉(zhuǎn)發(fā)到<NodeIP>:NodePort

三:Ingress Controller

Service 雖然解決了服務(wù)發(fā)現(xiàn)和負(fù)載均衡的問(wèn)題,但對(duì)外訪問(wèn)的時(shí)候,NodePort類型需要在外部搭建額外的負(fù)載均衡,而LoadBalancer需要Kubernetes必須跑在支持的cloud provider上面。 Ingress就是為了解決這些限制的。

Ingress 是一個(gè)規(guī)則的集合,它允許集群外的流量通過(guò)一定的規(guī)則到達(dá)集群內(nèi)的 Service 。 request--->ingress--->service.

Ingress由三個(gè)組件組成:

1.反向代理負(fù)載均衡器:即常見(jiàn)的負(fù)載均衡軟件,如 nginx、Haproxy 等

2.Ingress Controller: kubernetes API 進(jìn)行交互,實(shí)時(shí)的感知后端 service、pod 等變化, Ingress Controller 再結(jié)合下文的 Ingress 生成配置,然后更新反向代理負(fù)載均衡器,并刷新其配置,實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)與更新

3.Ingress:規(guī)則集合;定義了域名與Kubernetes的service的對(duì)應(yīng)關(guān)系;這個(gè)規(guī)則將與 Ingress Controller 結(jié)合, Ingress Controller 將其動(dòng)態(tài)寫(xiě)入到負(fù)載均衡器配置中,從而實(shí)現(xiàn)整體的服務(wù)發(fā)現(xiàn)和負(fù)載均衡。

四:Service Load Balancer
在Ingress出現(xiàn)以前,Service Load Balancer誰(shuí)推薦的解決Service局限性的方式。Service Load Balancer將haproxy跑在容器中,并監(jiān)控service和endpoint的變化,通過(guò)容器IP對(duì)外提供4層和7層負(fù)載均衡服務(wù)。

五:Custom Load Balancer
自定義組件,代替kube-proxy來(lái)做負(fù)載均衡。如nginx plus, kube2haproxy等。

六:Endpoints
有幾種情況需要用到?jīng)]有selector的service
1.使用kubernetes集群外部的數(shù)據(jù)庫(kù)時(shí)。
2.service中用到了其它namespace或kubernetes集群中的service
3.在kubernetes的工作負(fù)載與集群外的后端之間互相遷移。

七: Traefik
Traefik是?款開(kāi)源的反向代理與負(fù)載均衡?具。它最?的優(yōu)點(diǎn)是能夠與常?的微服務(wù)系統(tǒng)直接整合,可以實(shí)現(xiàn)?動(dòng)化動(dòng)態(tài)配置。?前?持Docker,Swarm, Mesos/Marathon, Mesos, Kubernetes, Consul, Etcd, Zookeeper,BoltDB, Rest API等等后端模型。

kubernetes中負(fù)載均衡機(jī)制Ingress的示例分析

kubernetes中負(fù)載均衡機(jī)制Ingress的示例分析

關(guān)于“kubernetes中負(fù)載均衡機(jī)制Ingress的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

網(wǎng)站名稱:kubernetes中負(fù)載均衡機(jī)制Ingress的示例分析-創(chuàng)新互聯(lián)
URL鏈接:http://www.muchs.cn/article44/shohe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、搜索引擎優(yōu)化、微信小程序電子商務(wù)、營(yíng)銷型網(wǎng)站建設(shè)移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)