ingress與ingress-controller
ingress分為兩個概念,ingress和ingress-controller
ingress:指的是k8s中的一個api對象,一般用yaml配置,作用是定義請求如何轉發到service的規則,也就是配置的規則
ingress-controller:一個容器,容器中運行着負載均衡的程序,比如ingress-nginx、ingress-haproxy。ingress-controller會對ingress定義的規則進行解析,根據配置的規則來實現請求轉發。
ingress常見的部署范式
1. Deployment+LoadBalancer模式的Service
這中方式適合在公有雲,用deployment部署ingress-controller,創建一個type為LoadBalancer的service關聯這組pod
2. Deployment+NodePort模式的Service
同樣用deployment模式部署ingress-controller,並創建對應的服務,但是type為NodePort。這樣,ingress就會暴露在集群節點ip的特定端口上。由於nodeport暴露的端口是隨機端口,一般會在前面再搭建一套負載均衡器來轉發請求
3. DaemonSet+HostNetwork+nodeSelector
用DaemonSet結合nodeselector來部署ingress-controller到特定的node上,然后使用HostNetwork直接把該pod與宿主機node的網絡打通,直接使用宿主機的80/433端口就能訪問服務。
https://blog.csdn.net/yujia_666/article/details/109155467 參考文檔