阅读本文需要以下知识为前提
- 了解k8s基本架构,k8s基本资源清单
- 用自己的k8s实验环境
首先了解ingress解决了什么问题
- k8s内部项目暴露外部访问,只用一个固定端口,暴露多个服务。相对于:LoadBlancer Service、NodePort Service更灵活更方便。
- pod漂移后的ip变化,自动识别pod ip
- 修改nginx配置不用reload加载
- 实现灰度发布(根据流量或者http请求头进行灰度)
架构介绍
-
ingress controller
入口流量控制器。Kubernetes 作为一个项目,目前支持和维护 AWS, GCE 和 nginx Ingress 控制器。还有其他开源控制器例如:istio Ingress等。作用都是做负载均衡和代理。
底层就是一个运行在k8s平台上的nginx。
官方部署文档:k8s环境部署nginx-ingress-controller<