您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)HAProxy主要特性是什么,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
在Kubernetes中,Ingress對(duì)象定義了一些路由規(guī)則,這些規(guī)則規(guī)定如何將一個(gè)客戶端請(qǐng)求路由到指定服務(wù),該服務(wù)運(yùn)行在你的集群中。這些規(guī)則可以考慮到輸入的HTTP消息的獨(dú)特方面,包括其Host請(qǐng)求頭和URL路徑,這將允許你在請(qǐng)求中使用數(shù)據(jù)發(fā)現(xiàn)將流量從一個(gè)服務(wù)發(fā)送到另一個(gè)服務(wù)。那意味著你能夠使用Ingress對(duì)象來(lái)為許多不同的應(yīng)用程序定義路由。
雖然Ingress對(duì)象定義路由,但I(xiàn)ngress Controller是驅(qū)動(dòng)它們的引擎。Ingress Controller是一個(gè)位于客戶端和服務(wù)之間的代理,其作用是正確地傳遞消息。目前市面上已經(jīng)有幾個(gè)項(xiàng)目實(shí)現(xiàn)了Ingress Controller規(guī)范,每個(gè)項(xiàng)目都有其優(yōu)勢(shì)。Rancher提供了一個(gè)基于NGINX的默認(rèn)controller,但你并不需要局限于此。Rancher已經(jīng)和HAProxy達(dá)成合作,因此你也可以選擇使用HAProxy Ingress Controller。我們傾向于把HAProxy Ingress Controller看作是一個(gè)完美的Kubernetes的渦輪增壓引擎,能夠充分提升Kubernetes的使用效率。
HAProxy Ingress Controller的特性
你可以在Rancher應(yīng)用商店中找到HAProxy,此外你還可以在HAProxy的官方文檔(https://www.haproxy.com/documentation/hapee/latest/installation/rancher/ )中找到HAProxy的安裝細(xì)節(jié)。設(shè)置完成之后,HAProxy將會(huì)自動(dòng)監(jiān)聽(tīng)和實(shí)現(xiàn)Ingress規(guī)則。此時(shí),你可以選擇禁用NGINX Ingress Controller或保持兩個(gè)Ingress controller都運(yùn)行并通過(guò)名稱指定其中一個(gè)。
HAProxy的功能特性包括以下內(nèi)容:
包括NGINX Ingress Controller在內(nèi)的許多代理類型,重載都會(huì)導(dǎo)致短暫的時(shí)間窗口,此時(shí)后端服務(wù)不可用。在許多情況下,當(dāng)HAProxy需要刷新其配置時(shí),它可以完全避免重新加載。
它的Runtime API允許完全在內(nèi)存中實(shí)現(xiàn)更改。然而,由于HAProxy的無(wú)中斷重載,需要重載的更改不會(huì)導(dǎo)致停機(jī)。這意味著,無(wú)論你何時(shí)從Ingress規(guī)則中添加或刪除路徑、更新Secret或更改注釋都不會(huì)對(duì)流量產(chǎn)生影響。
由于HAProxy對(duì)性能的關(guān)注,你會(huì)發(fā)現(xiàn)每秒可處理的請(qǐng)求數(shù)會(huì)立即受到影響——明顯增加。此外,通過(guò)彈性二進(jìn)制樹(shù)等獨(dú)特的算法,HAProxy比其他controller使用更少的資源。
使用Stats頁(yè)面、Runtime API和raw configuration,你可以輕松查看配置好的Pod以及相關(guān)聯(lián)的后端和它們的健康狀態(tài)。默認(rèn)的Ingress controller會(huì)要求你安裝krew以查看這一信息。
HAProxy提供大量有關(guān)流向你的集群的流量指標(biāo)。在HAProxy Stats頁(yè)面上,你將找到用于跟蹤請(qǐng)求率、響應(yīng)時(shí)間、活動(dòng)連接、成功和錯(cuò)誤響應(yīng)以及通過(guò)的數(shù)據(jù)量的統(tǒng)計(jì)數(shù)據(jù)。這篇文章(https://www.haproxy.com/blog/exploring-the-haproxy-stats-page/ )介紹了所有提供的指標(biāo),這些指標(biāo)也是通過(guò)Prometheus端點(diǎn)暴露的。
HAProxy會(huì)發(fā)布詳細(xì)的日志,其中包含請(qǐng)求時(shí)間數(shù)據(jù),可以讓你精確地指出請(qǐng)求中的慢速,斷開(kāi)代碼將顯示請(qǐng)求終止的方式和原因,以及顯示整個(gè)集群中的活躍連接數(shù)。
與其他Ingress Controller相比,HAProxy提供了更多的負(fù)載均衡算法,包括輪詢法(Round Robin)、最小連接和基于哈希的算法。這種選擇很重要,因?yàn)椴煌愋偷姆?wù)在不同類型的負(fù)載分布中表現(xiàn)出色。例如,保持連接時(shí)間較長(zhǎng)的服務(wù)在使用最小連接算法時(shí)表現(xiàn)更好,該算法在向服務(wù)器發(fā)送新客戶端之前檢查服務(wù)器的繁忙程度。你可以在你的Ingress對(duì)象中通過(guò)添加一個(gè)名為haproxy.org/load-balance 的注釋來(lái)定義,使用均衡文檔中列出的值。
一旦你啟用HTTPS,HAProxy就會(huì)自動(dòng)啟用端到端的HTTP/2。NGINX在客戶端支持HTTP/2,同時(shí)HAProxy也支持通過(guò)HTTP/2連接到你的pods。此外,HAProxy還支持gRPC服務(wù)的端到端streaming。
諸如白名單IP地址以及強(qiáng)制速率限制等安全功能形成了一個(gè)重要的保護(hù)層。使用HAProxy,這些功能都能夠立刻實(shí)現(xiàn)并且你可以使用注釋調(diào)整它們。當(dāng)你的集群托管多個(gè)服務(wù)時(shí),速率限制是至關(guān)重要的,因?yàn)槟阋欢ú粫?huì)希望一個(gè)服務(wù)占用所有的帶寬。
HAProxy的連接隊(duì)列提供了對(duì)流量峰值的保護(hù)。通過(guò)在Kubernetes服務(wù)上設(shè)置pod-maxconn注釋,一組pod會(huì)獲得最大并發(fā)連接數(shù)限制,額外的連接數(shù)會(huì)被排隊(duì),從而防止pod超載。
上面介紹了HAProxy的6個(gè)主要特性,可以幫助你更清晰地了解HAProxy Ingress Controller的優(yōu)勢(shì)。
上述就是小編為大家分享的HAProxy主要特性是什么了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。