加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

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

发布时间:2020-04-08 20:10:38 所属栏目:动态 来源:站长网
导读:副标题#e# 本来生活网架构负责人陈杰 关于本来生活网 本来生活网创办于 2012 年,是一个专注于食品、水果、蔬菜的电商网站,从优质食品供应基地、供应商中精挑细选,剔除中间环节,提供冷链配送、食材食品直送到家服务。致力于通过保障食品安全、提供冷链宅

我们在 Test 命名空间中开启了网关,并且设置了两个关键的 Annotation。

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

当网关的 ExternalIP 显示了我们设置的 10.0.0.1 IP 地址后,就表示当前命名空间的 Ingress 出口已经建立,接下来我们只要在 KS 的路由设置中添加 Ingress 。

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

加好路由后,只要把 www.benlai.com 域名指向到 10.0.0.1 后就可以访问了。

支持 TCP 访问

我们可能还有一些应用不是基于 HTTP/HTTPS 访问的,比如想暴露一个 MySQL 的 3306 端口给外部,这时候你就需要直接对 Service 进行设置。

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

我们选择了 10.0.0.2 这个 EIP 作为暴露 IP,以下是这个 Service 的 yaml :

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

当在 Service 列表里看到外网访问这列出现了 10.0.0.2 这个 IP 后,就表示该 Service 的 EIP 已经暴露给外部,这时候你就可以使用 MySQL 客户端对 10.0.0.2 进行连接了。

高可用架构

说到这里,你可能会有许多疑问,比如:

单个路由器挂了怎么办?

单个 Porter-Manager 挂了怎么办?

Porter-Manager 和路由器网络断了怎么办?

EIP 下一跳地址所在的节点挂了怎么办?

某个 EIP 流量突然飙升,一个节点扛不住怎么办?

一般路由器或交换机都会准备两台做 VSU (Virtual Switching Unit) 实现高可用,这个是网络运维擅长的,这里不细讲了,可以参考 Porter 的第一张架构图里网络拓扑结构。我们重点讲下后面四点要怎么解决。

检查 BGP 路由表

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

首先我们要查下路由器上的 BGP 的路由表。如果 Porter 装好后一切正常,你在路由器上会看到这样一个 BGP 列表。其中星号代表这条 BGP 路由可用,大于号代表路由器现在正在使用这条路由规则。注意这是 BGP 路由,不是路由器的当前路由,这是有区别的。这个列表表示你把路由写到了 BGP 路由表里,每一个 EIP 只写了一条路由规则。

若要做到高可用,这里每个 EIP 对应的路由必须有两条以上。这样设置后,当 192.168.0.201 挂了以后,路由器会再从 BGP 路由表里选一条路由规则进行跳转。否则只有一条的话,这时候网络就断掉了,我们做过这样的测试。因此一定要确保 BGP 路由表是一个 EIP 对多个节点。

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

如果它不是这样的,你要找一下原因,是不是你的路由器没有配置好,或者你的 Porter 配置不对,或者有其他什么问题存在。

检查 BGP 邻居状态

接下来我们查看 BGP 的邻居状态。所谓的邻居状态意思是 Porter-Manager 在路由器上的连接状态。

默认安装 Porter,它只是在一个 Master 上部署 Porter-Manager。在邻居列表里能看到该 Porter-Manager,状态是 Established。注意检查其状态一定得是 Established。当状态为断开后,路由器会删除所有 Porter 提交的路由规则,也就是说当你的 Porter-Manager 挂了,你整个集群对外的网络也就挂了,是全部挂了。

我们应该怎么办?

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

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读