在我看到的所有Chef示例中,自动缩放都非常简单 – 您可以configurationDB主机,然后是Web服务器。 您可以创build尽可能多的networking服务器 – 所有这些都将使用相同的数据库主机(不需要更改)。
但是如果我的配方/节点configuration菜谱需要在其他一些后端节点上进行configuration更改呢? 厨师怎么做? 例如,我有现有的BGP路由reflection器(鸟),我提供了新的边缘节点,作为一个依赖,我必须在BGP路由reflection器节点上生成新的IBGP对等体configuration和重读configuration文件。
最佳做法是什么? 我应该使用chef-push-jobs将更改推送到BGP路由reflection器节点吗?
厨师在内部并没有一个真正的系统。 在广泛的笔触中,你所说的是“服务发现”,当一个服务想要找出有关networking上另一个服务的信息。 厨师通过search() API有一个简单的SD系统,但也有Consul,Eureka和mDNS / Autoconf等专用SD系统。
一旦你获得了可访问的服务数据,下一个问题就是如何处理通过networking传播的更新。 厨师自己通常使用守护进程模式服务,每隔X秒运行一次会聚。 这意味着如果你将X设置为60,那么在119秒之后,一切都会被更新。 如果你想要更快的东西,那么有一些select,比如将通知从一个节点推送到另一个节点,或者使用中央协调系统来推送原来的更改,然后处理级联更新。 厨师推工作在理论上可用在这里,但我不会真的推荐它。 像Consul + Consul模板这样的东西可能是你想要的快速stream失configuration和SD更新,或者只是让厨师的间隔运行照顾它的事情变化较less的事情。