Kubernetes

最少數量的 etcd 實例

  • October 27, 2017

我考慮在 scaleway 上安裝盡可能小的 kubernetes 設置。這個想法是為自己準備一種 MVP,它能夠執行我的應用程序組件,並在使用量增長時將其轉變為完整的冗餘設置。

https://www.tauceti.blog/post/kubernetes-the-not-so-hard-way-with-ansible-at-scaleway-part-1/上的教程提到

  • etcd 不應安裝在控制器節點上,而應安裝在單獨的 VM 上
  • etcd 至少需要三個節點

推薦單獨安裝的原因是什麼,我可以在控制器上只執行一個 etcd 嗎?

請考慮我只搜尋功能設置而不是高可用性。

etcd 至少需要三個節點

如果您要求它具有容錯性,那麼對於任何具​​有領導者/主節點來保持一致性的分佈式系統都是如此。實際上,您需要奇數個節點來確保如果集群不能平均分成兩部分(例如由於網路中斷),因為當這種情況發生時,任何一方都無法選舉領導者,整​​個集群將變得不可用。三個恰好是能夠容忍單個節點宕機而不影響集群正常執行時間的最小數量。

如果您不需要高可用性系統,則可以使用單個節點,但出於明顯的原因,不建議將非高可用性解決方案用於生產用途 - 如果您的系統足夠小並且您了解系統崩潰的風險或不能證明額外節點的費用是合理的。

etcd 不應安裝在控制器節點上,而應安裝在單獨的 VM 上

這也是一個穩定性/可擴展性問題 - 在大多數分佈式系統中,您可以自由地將控制器節點與計算節點混合使用,但在高負載下它們可能會在此設置中遇到困難。如果您沒有足夠的節點來創建一個三節點集群,那麼您就沒有足夠的節點來對系統施加壓力,從而達到這一點。

當您的系統增長到節點開始出現問題時,這兩個問題都可以解決,或者您可以保證設置額外節點的成本。

您可以從一個 MVP 節點開始,但 kubernetes 和 etcds 指南都面向分佈式設置,您只能從在集群中設置它們中真正受益。嘗試將其從一個節點擴展到三個節點時,您可能還會遇到問題。如果你能負擔得起三節點設置,那麼我會從它開始,當你想進一步擴展設置時,讓所有節點開始,所有服務都將它們分開。

引用自:https://unix.stackexchange.com/questions/400960