k8s中对外暴露服务的三种方式
先说总结后面内容慢慢补1,通过Nodeport方式2,通过LoadBalance方式3,通过ingress方式ingress只不过是k8s实现7层代理的工具,拿ingress-nginx举例子,他将svc产生的资源的cluster-ip,通过7层代理的方式(例如nginx反向代理),统一用ingress-control与集群外部进行对接, 本质上ingress想与集群外部访问,仍然需要k8s集群的
·
先说总结后面内容慢慢补
1,通过Nodeport方式
2,通过LoadBalance方式
3,通过ingress方式
ingress只不过是k8s实现7层代理的工具,拿ingress-nginx举例子,他将svc产生的资源的cluster-ip,通过7层代理的方式(例如nginx反向代理),统一用ingress-control与集群外部进行对接, 本质上ingress想与集群外部访问,仍然需要k8s集群的特性对外提供服务,
而且想要通过ingress方式直接让集群外部进行访问,仍然需要集群外部单独的dns服务器,或者配置hosts文件
据我了解有如下几种:
- pods共享宿主机的网络命名空间pod.spec.hostNetwork(无法实现LB)一般也不这样搞,容易冲突,企业一样会用LB的方式对ingress去做负载均衡。
例如如下文档ingress-control就采用的此种方式配置的
https://blog.csdn.net/u013068377/article/details/107141311 - service通过暴露nodeport的方法代理pods向外保罗(无法基于七层协议暴露)
例如如下文档就是通过这种方式暴露的
https://blog.csdn.net/qq_21187515/article/details/112497544 - 通过ingreses-nginx,envoy等kubernetes的副本来向外暴露(可以基于七层协议暴露,实现ssl回话,)
参考如下文档
https://blog.csdn.net/weixin_37647823/article/details/84869465?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.pc_relevant_baidujshouduan&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.pc_relevant_baidujshouduan
更多推荐
已为社区贡献2条内容
所有评论(0)