设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 数据 手机
当前位置: 首页 > 站长资讯 > 动态 > 正文

KubeSphere 帮助本来生活网在 K8s 物理环境暴露集群服务(3)

发布时间:2020-04-08 01:28 所属栏目:15 来源:站长网
导读:要实现这个效果,一般比较笨的做法就是手动配置一个个的静态路由。这样的方式不太灵活,你要网工一直协助你操作路由器,维护成本是相当高的,肯定不适合生产环境。Porter 的做法是只要你告诉它你要配置这样一个网段

要实现这个效果,一般比较笨的做法就是手动配置一个个的静态路由。这样的方式不太灵活,你要网工一直协助你操作路由器,维护成本是相当高的,肯定不适合生产环境。Porter 的做法是只要你告诉它你要配置这样一个网段,由它的 Porter-Manager 与交换机建立 BGP 连接,并对所有 Load Balancer 类型的 Service 自动分配 EIP。它会把对应的路由规则直接写到交换机上,无需人工干预,这就是动态路由。

什么是 BGP

BGP 是边界网关协议(Border Gateway Protocol),是一种动态路由协议,使用 TCP 协议进行通信。BGP 在不同的自治系统(AS)之间交换路由信息。

KubeSphere 帮助本来生活网在 K8s 物理环境暴露集群服务

什么是 AS

这里有一个新名词——自治系统(AS)

KubeSphere 帮助本来生活网在 K8s 物理环境暴露集群服务

自治系统是什么?是一个(或多个)实体管辖下的所有 IP 网络和路由器的全体,每个自治系统都被分配一个唯一的自治系统编码(ASN)。你可以简单的理解为 AS 是一个公司,而 ASN 就是这个公司的唯一标识,像中国电信、中国联通、中国移动都有一个 ASN,如果他们之间要进行某些 IP 的路由交换,就是通过 BGP 来实现。

这里又提到一个新的名词 ASN,那这个 ASN 和我们的 Porter 又有什么关系呢?我们先来看下 ASN 的取值范围。

ASN 表

KubeSphere 帮助本来生活网在 K8s 物理环境暴露集群服务

ASN,它最早的版本是 16 位的,现在可以支持 32 位,如果你的路由器比较老,可能 32 位不支持,所以我们一般还是使用 16 位的 ASN。红色部分的范围是 64512-65534,表示 ASN 的私有号段。大家可以理解为 IP 地址有公网和私网,ASN 也有公有和私有的概念。内部使用 ASN 只要用私有号段就可以了。

配置路由器和 Porter

到这里我们的基础知识基本补全了,可以开始配置路由器和 Porter 了。

KubeSphere 帮助本来生活网在 K8s 物理环境暴露集群服务

我们设置这个 Porter 只需要用到两个 ASN,一个是设在路由器上(65001),另一个设在 Porter 上(65002)。他们互相之间要知道对方的 IP、端口和对方的 ASN。当路由器和 Porter 配置好并启动后,他们两个设备就建立了 BGP 连接。

Porter 插件逻辑

我们再来看下 Porter 架构的第二张图,现在来看就比较清晰了。

KubeSphere 帮助本来生活网在 K8s 物理环境暴露集群服务

我们给路由器配了 ASN 65001,给 Porter-Manager 分配了ASN 65002。

Porter 内部会过滤所有 Load-Balancer 类型的 Service,当符合以下规则时,如果你指定了 IP 的话,它会分配给你指定的 IP;如果没有指定,就在指定网段范围里随机分配一个 IP。

KubeSphere 帮助本来生活网在 K8s 物理环境暴露集群服务

插件列表

Porter-Manager

Porter-Agent

前面主要解释 Porter-Manager 的工作原理。Porter-Manager 是使用 Deployment 部署到 Master 节点上的,但默认只部署 1 个副本,它负责同步 BGP 路由到物理交换机。还有一个组件,Porter-Agent,它以 DaemonSet 的形式在所有节点都部署一个副本,功能是维护引流规则。

插件部署架构图

KubeSphere 帮助本来生活网在 K8s 物理环境暴露集群服务

这是 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 访问

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读