当我们在K8s集群中安装好Kubesphere,并部署好自己的微服务以后,如何将我们的服务暴露出去是一个问题。
通常我们会使用NodePort的方式将我们的应用通过K8s允许的端口即30000-32767端口暴露出去,这种方式的缺点也很明显,当我们配置好域名进行访问时需要带上端口号才能访问到对应的服务而且端口有数量限制,一般情况下我们不希望在请求时带上这些端口。
能不能使用默认的80/443端口进行访问我们的服务呢?公有云服务中各个厂商都提供了对应的loadBalancer服务,Kubesphere的网关设置中也对这种方式做了支持。提供各家云服务厂商的LoadBalancer,我们只需要配置对应云服务厂商提供的的注解即可。
但在私有云环境,自己搭建的虚拟机中我们想要对外暴露我们的服务时就显的困难了。此时Kuhesphere社区提供了私有云上的插件帮我们完成这一步。OpenELB带着这个使命来了。
OpenELB简介
OpenELB 项目在此前命名为 PorterLB,是为物理机(Bare-metal)、边缘(Edge)和私有化环境设计的负载均衡器插件,可作为 Kubernetes、K3s、KubeSphere 的 LB 插件对集群外暴露 “LoadBalancer” 类型的服务,核心功能包括:
- 基于 BGP 与 Layer 2 模式的负载均衡
- 基于路由器 ECMP 的