Chef
具有外部供應依賴關係的廚師食譜
在我見過的所有 Chef 範例中,自動縮放的工作都非常簡單——您先配置 DB 主機,然後再配置 Web 伺服器。您可以根據需要創建任意數量的網路伺服器——它們都將使用相同的數據庫主機(無需更改)。
但是,如果我的配方/節點配置說明書需要在其他一些後端節點上進行配置更改怎麼辦?我怎麼能用廚師做到這一點?例如,我有現有的 BGP 路由反射器(鳥),我提供新的鳥邊緣節點,並且作為依賴項,我必須生成新的 iBGP 對等配置並重新讀取 BGP 路由反射器節點上的配置文件。
最佳做法是什麼?我應該使用 chef-push-jobs 將更改推送到 BGP 路由反射器節點嗎?
Chef 內部並沒有真正的系統。概括地說,您所說的是“服務發現”,當一個服務想要找到有關網路上另一個服務的資訊時。Chef 通過
search()
API 有一個簡單的 SD 系統,但也有專用的 SD 系統,如 Consul、Eureka 和 mDNS/Autoconf。一旦您以可以訪問的方式獲得服務數據,下一個問題是如何處理通過網路傳播的更新。Chef 本身通常使用守護程序模式服務,每 X 秒執行一次聚合。這意味著如果您將 X 設置為 60,那麼在 119 秒後所有內容都會更新。如果您想要更快的東西,那麼可以選擇將通知從一個節點推送到另一個節點,或者使用中央編排系統來推送原始更改,然後處理級聯更新。Chef Push Jobs 理論上可以在這裡使用,但我不會真正推薦它。Consul + Consul Templates 之類的東西可能是您想要快速配置和 SD 更新的東西,或者只是讓 Chef 的間隔執行來處理不太頻繁變化的事情。