OpenShift router 服务如何实现高可用?

参与4

1同行回答

zzhengleizzhenglei  技术经理 , 某保险
OpenShift router 服务支持两种高可用模式。 ### 单 router 服务多副本,并利用和DNS/LB 实现高可用 这种模式只部署一个 router 服务,它支持集群的所有对外暴露的服务。要实现HA,需要设置副本数(replicas)大于1,使得会在超过一台服务器上创建pod,然后再通过DNS轮询或者四层负载...显示全部

OpenShift router 服务支持两种高可用模式。
### 单 router 服务多副本,并利用和DNS/LB 实现高可用
这种模式只部署一个 router 服务,它支持集群的所有对外暴露的服务。要实现HA,需要设置副本数(replicas)大于1,使得会在超过一台服务器上创建pod,然后再通过DNS轮询或者四层负载均衡。

因为 router/pod 中的 HAProxy 要实现本地配置文件,因此实际上它们是有状态容器。OpenShift 采用 etcd 作为配置的统一存储,openshift-router 进程应该是采取某种机制(被通知或定时拉取)从 etcd 中获取 router 和 route 的配置,然后再修改本地的配置文件,再重启 HAPorxy 进程来应用新修改了的配置文件。 要深入了解这里面的工作原理,可以去看源代码。

因为master 上的服务也需要有LB(8443端口),router 服务也需要LB(80和443端口)。因此,要么采用两个LB:

要么采用一个LB 来支持 master 上的服务和 router 服务:

多 router 服务通过分片(sharding)实现高可用

这种模式下,管理员需要创建和部署多个 router 服务,每个router 服务支持一个或几个 project/namespace。router 和 project/namespace 之间的映射使用标签(label)来实现。具体的配置请参考官网 https://docs.openshift.com/container-platform/3.11/install_config/router/default_haproxy_router.html。 实际上,和一些产品(比如mysql,memedcache)的分片功能类似,该功能更多地是为了解决性能问题,而无法完全解决高可用问题。

收起
保险 · 2020-02-05
浏览1360

提问者

hwrr
系统架构师某银行
擅长领域: 云计算容器云容器

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-02-05
  • 关注会员:2 人
  • 问题浏览:2122
  • 最近回答:2020-02-05
  • X社区推广