VIP和Service代理:
K8S v1.0:使用userspace模式
K8S v1.1:新增iptables模式替代userspace,從v1.2版本開始,默認是iptables代理
K8S v1.8.0-beta:添加ipvs代理,v1.14版本開始默認採用ipvs代理
背景:無論是iptables還是ipvs方式代理service,其實都是工作在4層(TCP/UDP over IP)概念,4層的代理方案是無法對協議進行解析並處理的。所以,在K8S v1.1版本中,新增了 Ingress API,用來可以實現7層(應用層)代理方案
採用Ingress方案需要有應用層的軟件提供支持,例如 nginx 的ingress方案:
Ingress-nginx github地址:https://github.com/kubernetes/ingress-nginx
Ingress-Nginx 官網地址:https://kubernetes.github.io/ingress-nginx
常規nginx反向代理方案:
Ingress-Nginx工作原理:
採用ingress-nginx的方案最終的效果:
使用 k8s配置的風格,實現在nginx 配置文件中配置代理規則 相同的效果;
同理還有 Ingress-HAproxy 方案,配置比起nginx稍微麻煩