ClusterIP
集群内部容器访问地址,会生成一个虚拟IP 与pod不在一个网段。
NodePort
会在宿主机上映射一个端口,供外部应用访问模式。
LoadBalancer
使用外部负载均衡。
Headless CluserIP
无头模式,无serviceip,即把spec.clusterip设置为None
代理模式的分类

![3LRR]EISW3X45T~%W$U{4LT.png](/uploads/projects/mingyi-10t0e@mwo5qi/e1183754714d8b1855fadd5fb1e50b29.png)

Ingress服务
向 k8s 集群外部暴露服务的方式有三种: nodePort,LoadBalancer 和本文要介绍的 Ingress。每种方式都有各自的优缺点,nodePort 方式在服务变多的情况下会导致节点要开的端口越来越多,不好管理。而 LoadBalancer 更适合结合云提供商的 LB 来使用,但是在 LB 越来越多的情况下对成本的花费也是不可小觑。Ingress 是 k8s 官方提供的用于对外暴露服务的方式,也是在生产环境用的比较多的方式,一般在云环境下是 LB + Ingress Ctroller 方式对外提供服务,这样就可以在一个 LB 的情况下根据域名路由到对应后端的 Service,有点类似于 Nginx 反向代理,只不过在 k8s 集群中,这个反向代理是集群外部流量的统一入口
集群版本:1.14
Ingress-Nginx github 地址:https://github.com/kubernetes/ingress-nginx
Ingress-Nginx 官方网站:https://kubernetes.github.io/ingress-nginx/

前往nginx-ingress官网根据手册下载ingress-controller和nginx-ingress这两个yaml文件
运行controller组件
查看运行状态

下载nginx-ingress的文件并运行
创建deployment文件
Service文件

Ingress文件

查看运行状态
进入windows下目录更改hosts文件
添加地址解析
确认访问成功
