背景說明:node
隨着docker使用的逐步深刻,docker的管理變得愈來愈麻煩,單純的經過docker命令行的方式進行管理已經不能知足需求,同時也存在效率低下的問題。因此急需一個docker集羣管理工具,要求是開源、穩定、持續發展。從上網看,開源的項目有不少,大部分都比較陳舊,我的感受shipyard比較合適,簡單實用,可是shipyard最近在github上通知關閉項目,再也不維護,原本還想既然這個是開源項目,那就拿到源碼本身改造也行,結果是用go寫的,只會python,go搞不定。因此放棄了。python
目前最大的應該就是谷歌的kubernetes了,也就是k8s,可是這個有一個公認的難題,集羣搭建極其複雜,而且因爲某些緣由,國內訪問不了goole,不少資料和源碼也很差下載,造成第一道門檻,爲此,我的花了一週的時間,研究k8s的搭建,作了以下兩個部署包,實現一鍵部署。包中包含了k8s程序以及依賴,能夠直接執行。說明以下:linux
環境說明:git
Kubernetes版本:v1.8.3github
操做系統:centos7docker
docker版本:17.03cecentos
集羣環境:服務器
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提供了全部須要的接口,技術上沒有什麼難度,就看我的願不肯意作了。