首先是一些關於redis的介紹和其在K8S上的安裝過程:https://www.kubernetes.org.cn/3974.htmlhtml
經過上述地址的教程,能夠完成redis 的安裝和使用。本文主要是要闡述一些社區版的redis-ha的形態探索。redis
這是我按照上述教程安裝的例子,能夠看到,默認是安裝1主+2從,這是3節點的配置。同時,每一個redis-server和一個redis-sentinel安裝在一個節點,也就有了三個redis-sentinel。bash
首先,咱們經過kubectl get svc -n default的方式來獲取redis的網絡狀況。(n爲namespace,請根據本身狀況進行更改)網絡
而後,咱們經過redis-cli的方式來訪問redis的master實例,並獲取Replication的狀態。學習
從上圖中,咱們能夠看出,redis master有兩個slave,同時,能夠看到他們的ip和pod ip是對應的。(注意,這裏咱們是在宿主機上,經過master的clusterIP訪問的,而非redis pod的)spa
咱們進入到redis的master server的pod中,kill掉redis server進程,由於pod存活條件應該是以redis來判斷的(有的是ping 6379這個端口,這裏暫時還不知道是怎麼判斷的。),這個時候由於咱們kill掉了redis進程,因此k8s認爲這個pod須要重啓,因此退出了bash。server
注意,這裏顯示的以slave的方式啓動,應該是由於我以前曾經作過相似的操做,這個節點以前是個從節點,是在一個master節點被kill掉以後才提高成爲的主節點。sentinel info能夠證明這一點。htm
稍等片刻後,咱們能夠看到已經完成了主從切換,同時咱們依然能夠經過以前的redis master的clusterIP來訪問redis的master實例。(請觀察此圖與上面那個圖片的role變化,和sentinel中的address變化)blog
可見,當master的pod由於某種緣由down掉了以後,k8s會經過sentinel選擇一個新的master節點,並更新master的clusterIP指向新的master的podip,以便對上層應用作成無感切換。下圖依然經過master的clusterIP來訪問redis的master實例。教程
今天先到這裏,本次主要是講述了k8s經過helm安裝的redis-ha進行主從切換對於業務和K8S的影響,以後會探索redis-ha的master,slave和sentinel的配置。
更多openstack/trove的文章:http://www.cnblogs.com/S-tec-songjian/
此文章屬博客園用戶S-tec原創做品,受國家《著做權法》保護,未經許可,任何單位及我的不得作營利性使用;若僅作我的學習、交流等非營利性使用,應當指明做者姓名、做品名稱,原文地址,而且不得侵犯做者依法享有的其餘權利。