天天看點

Kubernetes Ingress Controller 高可靠部署最佳實踐

在Kubernetes叢集中,Ingress是授權入站連接配接到達叢集服務的規則集合,為您提供七層負載均衡能力,您可以通過 Ingress 配置提供外部可通路的 URL、負載均衡、SSL、基于名稱的虛拟主機等。作為叢集流量接入層,Ingress Controller的高可用性顯得尤為重要,今天我們主要探讨如何部署一套高性能高可靠的Ingress Controller接入層。

高可用性首先要解決的就是單點故障問題,一般常用的是采用多副本部署的方式,我們在Kubernetes叢集中部署高可用Ingress Controller接入層同樣采用多節點部署架構,同時由于Ingress作為叢集流量接入口,建議采用獨占Ingress節點的方式,以避免業務應用與Ingress服務發生資源争搶。

Kubernetes Ingress Controller 高可靠部署最佳實踐

如上述部署架構圖,由多個獨占Ingress執行個體組成統一接入層承載叢集入口流量,同時可依據後端業務流量水準擴縮容Ingress節點。當然如果您前期的叢集規模并不大,也可以采用将Ingress服務與業務應用混部的方式,但建議進行資源限制和隔離。

随着叢集業務規模的逐漸擴大,我們需要同時擴容Ingress接入層以保證叢集接入層的高性能高可用,是以我們通過如下幾種方式來完成:

我們可以通過簡單地調整Nginx Ingress Controller Deployment的Replica數量來快速擴縮容Ingress接入層規模:

我們知道,負載均衡軟體是一種高計算型和高網絡IO型的資源,通常情況下建議選擇高主頻高網絡IO的機器來部署,是以當我們叢集中同時存在不同規格的節點執行個體時,假若我們希望将Nginx Ingress Controller僅僅運作在指定的一些高配置的節點上,我們可以通過節點打标的方式來完成:

<code>注意:1)確定打标節點數不少于Pod副本數以盡量規避多個Pod運作在同一個節點上;2)不建議部署到master節點上;</code>

上一篇: PHP 安裝
下一篇: pom.xml