Google Cloud群集上的McRouter。如何应对节点升级?

时间:2019-01-17 19:49:10

标签: kubernetes google-cloud-platform memcached mcrouter

我们正在Google Cloud集群上运行3节点mcrouter / memcached kubernetes部署(通过helm)。我们使用群集而不是单个VM来使我们的Web应用程序(它使用Memcache进行会话)可以抵抗节点故障。

在更新节点时,kubernetes逐个逐出Pod并生成新的Pod。由于内存缓存是内存中的存储,因此将在没有数据的情况下创建这些新的容器。升级期间间歇性会话失败证明,我们目前使用的微机路由不是这种情况的最佳选择。

据我了解,有两种解决方法:

  1. 使用WarmUpRoute
  2. 使用MissFailoverRoute

如果我想使用WarmUpRoute,则需要这样做:

  1. 在节点升级之前,将当前配置切换到将一个节点指定为“热”服务器,将另两个节点指定为“冷”服务器的配置。
  2. 在两个冷服务器上执行节点升级。
  3. 允许客户端查询缓存几天,这会慢慢导致冷服务器镜像热服务器,因为缓存未命中会导致同步。
  4. 使用另一个WarmUpRoute配置切换此WarmUpRoute配置,其中先前指定为“ warm”的服务器指定为“ cold”,反之亦然。
  5. 重复步骤3
  6. 最后,当所有服务器都同步后,恢复为我的原始配置。

如果我想使用MissFailoverRoute,则需要这样做:

  1. 使用将其中一个内存缓存节点指定为故障转移节点的配置。
  2. 更新两个非故障转移节点
  3. 更新故障转移节点

我理解正确吗?似乎第二种选择要简单得多。 WarmUpRoute方法有什么优点吗?是否有第三个选项比这两个选项更好?

0 个答案:

没有答案