天天看點

GitLab+Rancher實踐DevOps

本文描述使用自建GitLab和Rancher實踐持續內建/持續傳遞流水線的過程,并用Rancher實作容器編排和藍綠釋出。

GitLab持續內建/持續傳遞流程圖:

這是一個Go語言編寫的項目Dockerfile檔案,Go語言編譯器将項目編譯成可執行程式,是以這個Dockerfile比較簡單,如果是Python這種解釋型腳本語言要安裝各種依賴會稍微麻煩一些。

Rancher系統架構圖:

從這個圖上可以清晰地看出Rancher五層架構:

最底層(第一層)是各種雲計算虛拟化環境,這些環境是以插件的形式提供。

第二層是在雲平台上建立的虛拟主機。

第三層是各種基礎服務,如存儲、網絡、負載均衡、DNS等。

第四層是容器編排、使用者管理、運維管理,容器編排包含了各種主流的容器編排工具Cattle、Docker Swarm、Kubernetes、Mesos。

第五層是各種容器應用。

Rancher官方文檔内容很多,但是常用的功能其實并不多,是以這裡隻介紹最常用的幾個功能。

在每個環境中,你可以給每個私有倉庫位址配置一個認證資訊,進而使Rancher可以拉取私有鏡像。如果你給同一個鏡像倉庫配置了多個認證資訊,那麼Rancher隻會使用最近添加的一個認證資訊。Rancher支援在Cattle和Kubernetes環境中使用多種鏡像倉庫。

應用棧:應用棧可以部署多個容器服務,是一組容器服務的集合。一個應用棧對應一個業務群或者一個系統,用來确定系統邊界。

服務:服務分為兩種:基礎設施服務和使用者服務。基礎設施服務位于應用商店中,每個環境建立時需要配置環境模闆,環境模闆中選擇需要啟動的基礎設定服務。使用者服務是使用者自定義的服務,由使用者建構推送到鏡像倉庫再部署到應用棧。

用環境模闆建立環境(Environments),已建立的環境顯示在環境管理界面的環境清單中,環境清單中有一個是登入Rancher後的預設環境,清單右邊有一列“Switch to this Environment”按鈕,點選這個按鈕即可切換到該環境。

一個環境下包含多個應用棧(Stacks),基礎設定服務應用棧可以從應用商店中添加,使用者服務應用棧可以自定義也可以從應用商店中添加,添加一個應用棧就相當于建立一個容器服務集合。

一個應用棧包含多個服務(Services),使用者自定義服務就建立在自定義應用棧上,也就是我們通過“添加服務”(Add Service)将鏡像部署在應用棧,一個服務由多個容器組成。

選擇鏡像(Select Image):這個應該比較好了解,不用多解釋。

端口映射(Port Map):外部通路端口和容器内部端口對應關系。

服務連結(Service Links):這個選項參數比較多,這裡隻介紹幾個常用的。

指令(Command) :這裡面大部配置設定置都可以寫到Dockerfile裡面,用的多的是環境變量,環境變量用于服務初始化參數。

網絡(Networking):Network有四種參數:None——容器除了回環不配置任何網絡資訊;Host——容器使用主控端的網絡資訊;Bridge——容器通過虛拟網橋接入網絡,使用虛拟子網的網絡資訊;Container-已存在的一個共享網絡資訊。

容器服務的管理比較簡單,主要就是啟停、更新,更新也就是藍綠釋出。

使用GitLab可以實作DevOps的開發、測試、建構的過程管理,Rancher則負責DevOps部署和運維的過程管理,這兩個工具結合就可以完整的實作DevOps全過程,當然還需要依賴一個雲計算平台建立雲主機,公司内部如果需要自建虛拟化伺服器可以使用XenServer。

上一篇: 軟體集
下一篇: BT限制方法