我们正开始从D7迁移到D8,并将使用Docker和Kubernetes(与Jenkins一起)来管理和部署D8环境。
由于Docker和Kubernetes可以根据您的需要/需求部署尽可能多的相同节点,因此我一直在寻找反馈,以重新选择标准的Varnish和Drupal节点一对多设计(每个Varnish节点指向多个Drupal)后端),而不是一对一设计,每个Varnish节点都指向单个Drupal后端。
我们倾向于一对一设置,因为有了Kubernetes,我们可以将Varnish执行的运行状况检查移动到Kubernetes层,以测试后端是否健康,并在该层中添加另一个检查以确保Varnish本身是健康的,如果配对被标记为不健康,Kubernetes只会将请求发送给下一个健康的配对。
我认为这不会导致将更多页面放置在一个或另一个Varnish节点中,因为如果是一对多且后端生病了,那么Varnish只会尝试从下一个健康节点获取页面后端,但它仍进入相同的Varnish缓存。
在一对一设置的情况下,对是否存在“病”的测试只是从Varnish到Kubernetes,并且由于Varnish本身很少崩溃,因此这种情况不太可能发生。
随附了概念图的粗略证明。
我很高兴看到人们对使用一对一设计可能想到的任何潜在缺点的看法/反馈。
谢谢, 巴勃罗
答案 0 :(得分:1)
我能想到的几件事:
具有1-1映射将使Varnish与您的Drupal后端耦合,这意味着如果您将无法单独增加或减少Varnish或Drupal的容量。
如果您对此不关心,可能会很好,但是如果您觉得需要向缓存层添加更多容量,那意味着您的要求很高。您还必须将Drupal的容量增加一倍,这会带来更多费用。
如果您遇到某种粘性会话,则可能会遇到1-1映射将服务大部分流量的情况,而其他1-1映射则以某种方式处于空闲或未充分利用状态。换句话说,它可能会导致您的流量不均衡。