k8s

高可用网络拓扑

需求

  1. 高可用
  2. 跨地域,多活的数据中心

实现

如下图所示,即可完成上面的需求。
file

为什么是这样的拓扑

  1. 首先针对关键应用,部署3个服务。
  2. 在3个服务上有一层负载均衡。即loadbalancer service。每个service通过service controller来配置一个外部的负载均衡器。并且把负载均衡器分配的ip写回到service的地址里。这样在每一个图中App Tiler LB都有一个虚ip来指向后端pod。外部直接访问虚ip即可访问后端服务。
  3. dns本身有ttl的问题。如果直接在LB上挂dns的话,region的网络故障导致网络不通,这样通过dns到这个region的请求都会失败。如果客户端缓存了这个region的LB dns记录,那么请求仍然会发到这个失败的region上面,这样切流量是失败的。一般dns记录可能持续几分钟或者几十分钟才会失效,故障就会被放大。
  4. 为了解决ttl的问题,在APP Tiler LB也就是vip上面再挂一层Web Tiler LB。这层LB除了指向本region的下层LB地址,还会指向其他region的LB vip。
  5. 这样当region1出现故障时,只需要在上层LB上把指向region1 vip的流量切掉,这样故障就会从分钟级降到了秒级。
  6. 在上层LB上使用weight的负载均衡策略,99%的流量进到本地,1%的流量到其他region。这样99%的流量都是高效的。
  7. 在上层LB上再挂dns。
分类: k8s
0 0 投票数
文章评分
订阅评论
提醒
guest

0 评论
最旧
最新 最多投票
内联反馈
查看所有评论

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部
0
希望看到您的想法,请您发表评论x