KubeSphere 帮助本来生活网在 K8s 物理环境暴露集群服务
我们设置这个 Porter 只需要用到两个 ASN,一个是设在路由器上(65001),另一个设在 Porter 上(65002)。他们互相之间要知道对方的 IP、端口和对方的 ASN。当路由器和 Porter 配置好并启动后,他们两个设备就建立了 BGP 连接。 Porter 插件逻辑 我们再来看下 Porter 架构的第二张图,现在来看就比较清晰了。 我们给路由器配了 ASN 65001,给 Porter-Manager 分配了ASN 65002。 Porter 内部会过滤所有 Load-Balancer 类型的 Service,当符合以下规则时,如果你指定了 IP 的话,它会分配给你指定的 IP;如果没有指定,就在指定网段范围里随机分配一个 IP。 插件列表 Porter-Manager Porter-Agent 前面主要解释 Porter-Manager 的工作原理。Porter-Manager 是使用 Deployment 部署到 Master 节点上的,但默认只部署 1 个副本,它负责同步 BGP 路由到物理交换机。还有一个组件,Porter-Agent,它以 DaemonSet 的形式在所有节点都部署一个副本,功能是维护引流规则。 插件部署架构图 这是 Porter 第三张图。这里的 Agent 即 Porter-Agent,它是维护引流规则的,那具体是什么意思呢? Porter-Agent 会根据 Service Endpoints 的变化动态调整路由,确保 EIP下一跳的 Node 节点一定有目标 Pod 存在。当你为 Service 开启 External Traffic Policy=Local 时,流量可直接转到节点本地 Pod,不会再增加一次跳转。 如果熟悉 External Traffic Policy=Local 这个设置的意义,你会知道这个东西有利有弊。好处是减少网络跳转,还可以拿到 SourceIP;缺点是它可能会导致负载不均衡。实际的情况还是需要进行调试和验证。 如何在 KubeSphere 上使用 Porter 虽然 KubeSphere 没有内置支持 Porter,但是我们在 KubeSphere UI 上进行简单的设置就可以使用 Porter 了。 支持 Ingress 访问 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |