ingress是一個無威脅檔案軟體,檔案大小364KB,是k8s 資源對象,用於對外暴露服務,該資源對象定義了不同主機名稱及URL和對應後端Service的綁定,根據不同的路徑路由http和https流量。
ingress簡介
#Ingress是一個無威脅文件,文件大小364KB,是k8s 資源對象,用於對外暴露服務,此資源物件定義了不同主機名稱(網域名稱)及URL 和對應後端Service(k8s Service)的綁定,根據不同的路徑路由http 和https 流量。
nodePort,LoadBalancer 和 Ingress的關係
#向 k8s 叢集外部暴露服務的方式有三種: nodePort,LoadBalancer 和 Ingress。
nodePort 方式在服務變多的情況下會導致節點要開的連接埠越來越多,不好管理。
LoadBalancer 更適合結合雲端提供者的 LB 來使用,但是在 LB 越來越多的情況下對成本的花費也是不可小覷。
我們可以看到兩個LoadBalancers 都有自己的IP,如果我們向LoadBalancer 22.33.44.55發送請求,它請被重定向到我們的內部的service- nginx 服務去。如果發送請求到 77.66.55.44,它將被重定向到我們的內部的 service-python 服務。
這個確實很方便,但是要知道 IP 位址是比較稀有的,而且價格可不便宜。想像下我們 Kubernetes 叢集中不只是兩個服務,有很多的話,我們為這些服務創建 LoadBalancers 成本是不是就成倍增加了。
Ingress 是k8s 官方提供的用於對外暴露服務的方式,也是在生產環境用的比較多的方式,一般在雲環境下是LB Ingress Ctroller 方式對外提供服務,可以使用Ingress 來使內部服務暴露到集群外部去,它為你節省了寶貴的靜態IP,因為你不需要聲明多個LoadBalancer 服務了,此次,它還可以進行更多的額外配置。
ingress Controller
#Ingress Contoller 是一個pod 服務,封裝了一個web 前端負載平衡器,同時在其基礎上實現了動態感知Ingress 並根據Ingress 的定義動態生成前端web 負載平衡器的配置文件,例如Nginx Ingress Controller 本質上就是一個Nginx,只不過它能根據Ingress 資源的定義動態生成Nginx 的配置文件,然後動態Reload 。
所以,總的來說要使用Ingress,得先部署Ingress Controller 實體(相當於前端Nginx),然後再建立Ingress (相當於Nginx 配置的k8s 資源體現),Ingress Controller 部署好後會動態偵測Ingress 的建立狀況產生對應配置。 Ingress Controller 的實作有很多種:有基於 Nginx 的,也有基於 HAProxy的,還有基於 OpenResty 的 Kong Ingress Controller 等。
以上是ingress是什麼軟體的詳細內容。更多資訊請關注PHP中文網其他相關文章!