k8s边缘节点_k8s 暴露服务的几种方式

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:46   3264   0

Deployment+LoadBalancer模式的Service

如果要把ingress部署在公有云,那用这种方式比较合适。用Deployment部署ingress-controller,创 建一个type为LoadBalancer的service关联这组pod。大部分公有云,都会为LoadBalancer的service自 动创建一个负载均衡器,通常还绑定了公网地址。只要把域名解析指向该地址,就实现了集群服务 的对外暴露。

Deployment+NodePort模式的Service

同样用deployment模式部署ingress-controller,并创建对应的服务,但是type为NodePort。这样, ingress就会暴露在集群节点ip的特定端口上。由于nodeport暴露的端口是随机端口,一般会在前面 再搭建一套负载均衡器来转发请求。该方式一般用于宿主机是相对固定的环境ip地址不变的场景。 NodePort方式暴露ingress虽然简单方便,但是NodePort多了一层NAT,在请求量级很大时可能对性 能会有一定影响。

DaemonSet+HostNetwork+nodeSelector

用DaemonSet结合nodeselector来部署ingress-controller到特定的node上,然后使用HostNetwork直 接把该pod与宿主机node的网络打通,直接使用宿主机的80/433端口就能访问服务。这时,ingresscontroller所在的node机器就很类似传统架构的边缘节点,比如机房入口的nginx服务器。该方式整 个请求链路最简单,性能相对NodePort模式更好。缺点是由于直接利用宿主机节点的网络和端口, 一个node只能部署一个ingress-controller pod。比较适合大并发的生产环境使用。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP