背景
之前藉助humpback,能夠很好的管理容器,因為這些容器都是單節點、相對獨立的攜帶各自地功能,能夠清楚地了解當初構建這個容器時考慮的點有哪些,後面初步接觸k8s,不明白k8s裡面各組件怎麼協調、集群自容錯又如何實現,所以有時碰到問題,不知道該怎麼下手查,所以就找了rancher來幫忙部署k8s及相關組件
看中rancher,主要還是它的這幾點:將集群中各功能組件獨立出來,基於模板進行部署,能夠很好的支持容器的升級、回滾、啟停、配置導出等操作;多環境的管理;配置文件的可復用性;同時它也支持webhook進行CICD,不過1.6版本還處於非穩定狀態
實踐
平臺集成的rancher,本身也是通過容器方式啟動並對外提供服務
準備好數據持久化目錄並給予相關操作權限export baseDir=XXXXcd $baseDir && mkdir -p rancher/lib/cattle && mkdir -p rancher/lib/mysql && mkdir -p rancher/log/mysql && chmod -R 777 ./通過如下命令啟動容器cd $baseDir && docker run -d --restart=unless-stopped -p 8080:8080 -v $baseDir/rancher/lib/cattle:/var/lib/cattle -v $baseDir/rancher/lib/mysql:/var/lib/mysql -v $baseDir/rancher/log/mysql:/var/log/mysql rancher/serverrancher/server鏡像對應1.6版本
rancher/rancher鏡像對應2.X版本
由於rancher1.6中已經部署的集群無法直接在rancher2.0中使用,需要藉助其他工具進行升級操作,所以初次使用需要考慮好用哪個版本
多環境及基於模板的環境管理
各組件獨立模板進行環境編排
基於模板進行k8s集群容器構建
k8s-儀錶板跳轉
k8s命令行工具集成
每次進入都是啟動的一個小容器,數據不會持久化;
自動化集成的時候,需要這裡的~/.kube/config文件進行認證來執行kubectl相關操作
通過docker-compose.yml及rancher-compose.yml添加應用
對之前已經啟動的容器的進行過一些升級操作,導出的配置文件可以在這裡復用起來
通過應用商店添加應用
通過系統設置,添加catalog
其他一些發散(待集成平臺)
helm+catalog模板生成工具(模板定製)
docker-compose.yml轉k8s支持的yml文件(kompose)
暫時沒有找到能夠支持Dockerfile轉docker-compose.yml的文件(或許就不存在這樣的思路: 一個重在鏡像構建、一個重在容器編排)
由於機器硬體條件限制,目前只能是藉助這個去了解k8s的一些技術實現機制,及連帶的一些工具鏈~