Kubernetes

我可以在所有 Keepalived 節點上擁有相同的配置嗎?

  • January 5, 2022

在嘗試將實驗性 Kubernetes 集群(在我筆記型電腦上的幾個虛擬機中)配置為“高可用”時,我發現建議使用 keepalived 和 haproxy 的組合來執行此操作(https://github.com/kubernetes/kubeadm/blob /master/docs/ha-considerations.md#options-for-software-load-balancing)。

查看我閱讀的配置設置

${STATE} 對於一個主機是 MASTER,對於所有其他主機是 BACKUP,因此虛擬 IP 最初將分配給 MASTER。

主伺服器上的 ${PRIORITY} 應該高於備份伺服器。因此,分別為 101 和 100 就足夠了。

這些設置讓我感到驚訝。似乎我必須選擇這些系統中的哪一個作為初始主控系統,並且我必須在節點本身中“硬”配置它。

對我來說,這種“高可用性”設置偏離了我在 Kubernetes 中發現的“寵物”/“牛”類比。

其他系統,例如 HBase,具有類似的設置(一個活動領導者和多個備用領導者),並且所有系統都“相同”配置(通過 ZooKeeper 完成選舉)。

有沒有一種方法可以配置 Keepalived(用於 Kubernetes),以使所有節點都具有相同的配置並且仍然可以正常工作?

Kubernetes 本身為應用程序提供“牛”服務。儘管許多“主”kubernetes 服務都基於相同的基礎架構,但在某些時候,您需要引導一個具有較低級別的服務才能啟動它。

連結的 kubernetes docco中配置的keepalived提供了一個VRRP虛擬 IP 地址作為 master 之間共享的高可用性端點。

所有節點都配置相同的 VRRP IP 地址(或名稱),keepalived 在主節點周圍移動該地址。“選舉”在 keepalived 健康檢查和故障轉移邏輯中完成。

此方法的替代方法是將負載平衡決策移至外部設備或客戶端。您可以在每個節點上執行反向代理(如 haproxy),它可以加權 kube-api 伺服器並完成健康檢查。

引用自:https://serverfault.com/questions/1031252