2016年2月下旬,docker釋出了企業級容器管理和服務部署的整體解決方案平台-docker datacenter,簡稱ddc。ddc 有三個元件構成:
docker universal control plane(docker ucp),這是套圖形化管理界面;
docker trusted registry(dtr),授信的docker鏡像倉庫;
docker engine商業版,提供技術支援的docker引擎。
ddc 與docker公司的另外一個線上産品 docker cloud 對應。不過ddc主要針對企業使用者在内部部署。使用者注冊自己的dokcer鏡像到dtr,ucp管理整個docker叢集。并且這兩個元件都提供了web界面。
使用ddc需要購買licence, 但是docker公司提供了一個月的試用licence,可以在docker官網注冊後直接下載下傳。
說了這麼多,到底如何部署ddc的環境呢?有一個簡單的方式,就是使用阿裡雲的ros。通過下面的連結一鍵部署,就可以做到分分鐘建立一套ddc。
<a href="https://ros.console.aliyun.com/createstack?regionenable=true&spm=5176.100239.blogcont61888.17.ftfnmw&regionid=cn-beijing&templateurl=http:%2f%2fros-template.cn-hangzhou.oss.aliyun-inc.com%2fdocker_ddc.json&step=2">一鍵部署>>></a>
點選一鍵部署後,預設會在華北2 region 部署 ddc。 如果你需要調整region,請點選頁面右下角的【上一步】,然後重新選擇region,接着點選【下一步】,你隻需要填入如下圖中必填的資訊或者根據你的需求調整資訊後,點選【建立】按鈕就可以部署一套 ddc。
當ros建立ddc成功後,怎麼登入ucp系統,可以進入ros的棧管理頁面,檢視剛才建立的棧的概要資訊,這裡面輸出了登入ucp和dtr的位址,如圖:
在浏覽器中輸入紅框中的位址就會顯示ucp的通路頁面,這時輸入在安裝ucp時建立的管理賬号和密碼就可以登入進去,接着會提示輸入導入licence檔案,請把準備好的licence導入,就可以進入ucp的控制界面了:
接下來将主要介紹如何通過阿裡雲的ros一鍵部署ddc環境。
在上面的基礎架構圖裡面,controller主要運作ucp元件,dtr運作的就是dtr元件, worker主要運作客戶自己的docker服務。整個ddc環境都部署在vpc網絡之下,所有的ecs加入同一個安全組。每個元件都提供了一個slb,供外網通路。而運維操作則是通過跳闆機實作。另一方面為了提升可用性,整個ddc環境都是高可用部署,也就是說controller至少有兩台,同理dtr也至少有兩台。
下面詳細介紹如何通過ros模闆建立阿裡雲資源并通過ros的userdata功能部署ddc環境。
部署需要的資源
當ucp節點建立完成後,都會挂載到slb,建立,配置slb以及挂載所有的ucp節點使用了這三個資源:
部署安裝ucp的userdata腳本主要指令
首先設定docker軟體包秘鑰
添加阿裡雲的docker源能夠確定成功拉取docker engine安裝包
安裝docker
配置拉取ucp鏡像的mirror
安裝ucp,這個指令隻需在master節點執行
ucp install的參數解釋:
--debug 打開debug檢視詳細的安裝資訊
--host-address 其他節點通過哪個ip通路ucp
--admin-username 設定ucp的管理賬号
--admin-password 設定管理賬号的密碼
--san 指定那些ip或域名能夠通過ucp的認證,這裡添加了兩個,一個是本機ip,一個是slb的公網ip。這裡必須寫上slb的ip位址,因為通路dtr的時候,會redirect到ucp做認證。如果不指定的話,就會直接使用私網ip,這時候必定通路失敗。
根據生成token,-q參數控制生成manager或worker類型的token
如果是slave節點,則安裝ucp的指令隻需替換成下面的指令即可
詳細ros模闆的ucp節點資源定義
dtr的安裝和ucp的類似,隻需要把安裝ucp的指令換成下面這兩個指令即可:
首先要加入ddc和ucp slave節點的指令一樣
安裝dtr
dtr install的參數:
--debug 打開debug開關,檢視安裝的詳細資訊
--ucp-url 指定ucp的通路位址,這裡使用ucp slb的公網ip
--ucp-node 指定安裝dtr的機器名
--dtr-external-url 供外部通路dtr的url,指定dtr slb的公網ip
--ucp-username ucp的管理者賬号
--ucp-password ucp的管理者賬号的密碼
--ucp-insecure-tls 給ucp關閉tls驗證
詳細ros模闆的dtr 資源定義
部署worker節點使用的指令和部署ucp的slave節點一樣,隻不過使用的token不同,worker節點使用的是worker類型的token。
詳細ros模闆的worker資源定義
大規模手工部署一個高可用的ddc環境還是有一定的複雜度,利用本文中提供的ros模闆,可以非常友善的幫你一鍵部署ddc環境,讓你把更多的精力放在自己的業務上。