Ingress 是 Kubernetes 集羣中用於管理服務外部訪問的 API 對象,典型的訪問方式是 HTTP 和 HTTPS。Ingress 能夠提供七層負載均衡、SSL 終結、基於名稱的虛擬主機等。nginx
經過 Ingress 訪問服務的一個典型示例以下圖所示:markdown
爲了配置這些 Ingress 策略,Kubernetes 集羣中須要部署一個 Ingress 控制器,它監聽 Ingress 和 Service 的變化狀況,並根據規則配置負載均衡並提供訪問入口。 Ingress Controller 在部署的時候一般會以 NodePort 或 LoadBalancer 的形式將入口地址公開到 Internet,以便集羣外部訪問。負載均衡
典型的 Ingress Controller 以及支持的特性列表以下圖所示(原始電子表格見這裏):編輯器
這些 Ingress Controller 的選型能夠參考上述特性對比,本文不做展開。oop
除了 Kubernetes Ingress API 對象定義的資源,不少 Ingress 控制器都基於 Kubernetes annotation 擴展了豐富的特性,而且不一樣控制器中這些特性的使用方法均不相同。於是,在須要切換不一樣 Ingress 控制器的場景中,想要正確配置這些特性就須要去查詢多個項目的文檔。學習
而 Ingress Builder 就提供了一個 Ingress API 資源的可視化編輯器。從編輯器的右側選擇控制器(如 nginx)和 Kubernetes 版本以後,在其下方就會顯示該控制器支持的各類特性。下圖就是一個編輯 nginx ingress 資源的示例:ui
在右側選擇不一樣的特性以後,在左側的 Ingress 資源處就會自動添加對應的 annotation,使用起來很是方便。google
Ingress Builder 的訪問網址爲 ingressbuilder.jetstack.io,祝你玩的開心。spa
歡迎關注 漫談雲原生 公衆號,學習更多雲原生知識。3d