背景說明:
隨着docker使用的逐步深入,docker的管理變得越來越麻煩,單純的通過docker命令行的方式進行管理已經不能滿足需求,同時也存在效率低下的問題。所以急需一個docker集群管理工具,要求是開源、穩定、持續發展。從上網看,開源的項目有很多,大部分都比較陳舊,個人感覺shipyard比較合適,簡單實用,但是shipyard最近在github上通知關閉項目,不再維護,本來還想既然這個是開源項目,那就拿到源碼自己改造也行,結果是用go寫的,只會python,go搞不定。所以放棄了。
目前最大的應該就是谷歌的kubernetes了,也就是k8s,但是這個有一個公認的難題,集群搭建極其復雜,並且由於某些原因,國內訪問不了goole,很多資料和源碼也不好下載,形成第一道門檻,為此,個人花了一周的時間,研究k8s的搭建,做了如下兩個部署包,實現一鍵部署。包中包含了k8s程序以及依賴,可以直接執行。說明如下:
環境說明:
Kubernetes版本:v1.8.3
操作系統:centos7
docker版本:17.03ce
集群環境:
3台虛擬機(提前安裝好docker)
######docker安裝方式#################
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
#####################################
master主機:192.168.1.107
node1節點:192.168.1.110
node2節點:192.168.1.111
#k8s的程序包未經過任何改動,是官方原版的1.8.3包。個人寫了安裝腳本
kubernetes-master下載鏈接
鏈接: https://pan.baidu.com/s/1slyrxut 密碼: 7y96
kubernetes-node下載鏈接
鏈接: https://pan.baidu.com/s/1dHhcR3z 密碼: w43e
使用方式:
master安裝:
1,下載kubernetes-master包,解壓到任意目錄,執行readme_and_install.sh腳本,根據提示輸入master ip地址
node安裝:
2,下載kubernetes-node包,解壓到任意目錄,執行readme_and_install.sh腳本,根據提示輸入master和node的ip地址
3,都安裝完成之后,在master執行(如提示kubectl命令未找到,執行source /etc/profile后再執行)
kubectl get nodes
應該能看到兩個節點,表示集群安裝成功。
總結:
經過本次研究k8s,個人感覺這個東西暫時不敢用在正式項目上,原因如下:
1,k8s是goole的項目,所有資料和源碼都在goole上存放(雖然在github上也有,但是真正下載的時候還是鏈接谷歌服務器),導致國內下載和查詢很困難,出了問題不好查資料。
2,k8s過於復雜,雖然提供的功能很多,編排、自動部署、持續集成。但是正是由於過於豐富的功能,導致部署和使用非常復雜,單靠個人力量,出了問題搞不定。
3,目前互聯網公司大部分使用公有雲,比如阿里雲,aws和微軟雲,他們都提供了docker管理工具,相較於自己研究k8s,不如直接使用公有雲提供的管理工具,比如aws的ecs(管理工具不收費,只按照真實的ec2使用收費)。
后記
shipyard停止維護挺可惜的,shipyard滿足了現階段對docker管理的所有需求,界面還可以,同時又能夠管理docker集群。不過通過shipyard的設計思路倒是給我了不少靈感,如果個人時間充足,我感覺我寧願自己寫一套類似於shipyard的docker管理工具,也不願意使用k8s,畢竟個人開發的管理工具能夠針對具體業務進行有重點的設計,而且docker提供了所有需要的接口,技術上沒有什么難度,就看個人願不願意做了。
