簡體   English   中英

我對 K8s 中 redis 的一些不了解

[英]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> 檢查SelectorEndpoints字段。 redis-headless服務選擇所有 Redis pod,而redis-master只選擇 Redis master pod,它標記為role:master

默認情況下,寫操作只能由主服務器處理,但您可以從副本讀取數據。 Redis 副本主要用於:

  1. 提高吞吐量。 如果 master 已經忙於寫操作,您可以向副本發送讀取命令。 請注意,默認情況下復制是異步發生的,因此不能保證強一致性。

  2. 高可用性。 通過使用Redis Sentinel ,當舊的 master 被認為不健康時,可以將副本提升為新的 master。 當 Redis 持久化沒有打開時,這也可以防止崩潰的 master 提供空數據。

對於stable/redis圖表,您可以配置sentinel.enabled以啟用 Redis Sentinel 和自動故障轉移。 還有一個stable/redis-ha圖表。

暫無
暫無

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

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