[英]Something that I am not understanding about redis in K8s
我使用舵圖在 GKE 中設置了 redis。
它創建了 3 個服務 redis-master、redis-slave 和 redis-headless。 當我通過“redis-headless”連接到它時,出現錯誤(大約 66% 的時間):
READONLY You can't write against a read only replica.
我認為這是因為它路由到兩個從屬實例。 如果我使用主人,那么它似乎工作。
我假設我應該只使用 redis-master 來連接? 它會使用奴隸嗎? 如果master宕機,它會更新嗎? 我應該路由到從站(用於讀取查詢)嗎?
我想更好地理解它是如何工作的(假設它是)。
謝謝
假設您指的是stable/redis
圖表。
您可以通過運行獲得更多詳細信息: kubectl describe service <service_name>
。 檢查Selector
和Endpoints
字段。 redis-headless
服務選擇所有 Redis pod,而redis-master
只選擇 Redis master pod,它標記為role:master
。
默認情況下,寫操作只能由主服務器處理,但您可以從副本讀取數據。 Redis 副本主要用於:
提高吞吐量。 如果 master 已經忙於寫操作,您可以向副本發送讀取命令。 請注意,默認情況下復制是異步發生的,因此不能保證強一致性。
高可用性。 通過使用Redis Sentinel ,當舊的 master 被認為不健康時,可以將副本提升為新的 master。 當 Redis 持久化沒有打開時,這也可以防止崩潰的 master 提供空數據。
對於stable/redis
圖表,您可以配置sentinel.enabled
以啟用 Redis Sentinel 和自動故障轉移。 還有一個stable/redis-ha
圖表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.