這是我所建模的example。如何在此Kubernetes示例中選擇主Redis窗格?
在自述的「刪除我們的手動莢」部分:
- Redis的哨兵本身,實現主設備已經從羣集中消失,並開始選過程選擇一個新的主人。他們執行這次選舉和選擇,並選擇一個現有的redis服務器副本作爲新的主服務器。
如何選擇新的主人?從redis-controller.yaml
由redis
複製控制器控制的所有3個Redis的服務器豆莢仍然有同樣的
labels:
name: redis
這是我在我的服務目前使用進行選擇。 3個豆莢如何區分,以便從Kubernetes我知道哪一個是主人?
謝謝。爲了避免宕機,我是否需要以某種方式配置Sentinel(或者找到某種鉤子)來自動更新主窗格(可能除了當前的'name:redis'標籤外,還可以通過添加'role:master'標籤)和創建另一個服務,選擇'name:redis'和'role:master')?否則,我的應用程序無法發出寫請求,除非收到Redis服務器故障通知並手動進入主服務器。 – writofmandamus
您不必這樣做,deploy/replicasets將自動啓動另一個pod故障(exited/node故障)上的基礎pod實例,爲了增強此功能,您可以使用liveliness和rediness探針來檢查microservice容器)的健康狀況,如果容器不健康,它會自動重新啓動。 –
對不起,我不明白。現在我的複製控制器(即將成爲StatefulSet/Deployment)確實會自動啓動另一個實例(如教程中所述)。然而,問題是(回到我原來的問題)Kubernetes不知道哪一個(新的pod或現有的複製)是否是主人。您建議我手動進入每個容器並使用redis-cli檢查角色。所以,我的後續問題不是手動操作,這怎麼可以自動完成(例如,我的服務仍然可以精確地選擇一個主窗格)。 – writofmandamus