簡體   English   中英

K8s 集群中的 Redis 故障轉移

[英]Redis failover in a K8s cluster

我正在嘗試讓 Redis 故障轉移在 Kubernetes 中使用工作節點故障場景。 我有一個 K8s 集群,它由一個主節點和兩個工作節點組成。 主節點不調度 pod。 Redis 的清單是這樣的,在一個有狀態集中有一個主實例和一個從實例,在另一個有狀態集中有 3 個哨兵。 清單具有關聯性,可以引導 Pod 在不同的工作節點上進行調度。 如果我耗盡了一個具有主實例和一個哨兵的工作節點,故障轉移就像一個冠軍。

但是,如果有2 個哨兵與主實例一起被驅逐,則沒有選擇主實例,並且在剩余的工作節點上重新啟動的 2 個哨兵報告: -failover-abort-no-good-slave master jnpr-ipb-redis-masters 10.244.1.209 7380 日志消息中的 IP 地址是前從站的 IP 地址(我希望將其提升為新的主站)。

是否有一些魔法可以使這項工作? 這是一個有效的集群配置嗎? 不太確定我應該看什么來了解正在發生的事情。

您想要的是 PodDisruptionBudget。 這將使自願驅逐至少不會破壞事情。 除此之外,您可以使用硬反關聯來強制將 pod 安排在不同的節點上。 但是,如果您同時丟失兩個節點,Sentinel 可能會不同步,則仍然可能出現故障。 這就是為什么 Redis Sentinel 不再使用以支持集群模式的很大一部分原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM