1. 程式人生 > >Docker決戰到底(三) Rancher2.x的安裝與使用 - 簡書

Docker決戰到底(三) Rancher2.x的安裝與使用 - 簡書

spa follow 中文 多少 block 目錄 arm note sudo

原文:Docker決戰到底(三) Rancher2.x的安裝與使用 - 簡書

技術分享圖片 image.png

當越來越多的容器化應用被部署,一個可以管理編排這些容器的工具此時就顯得尤為重要了。目前容器編排領域的佼佼者非kubernates莫屬了, 但我一直沒有來得及上手,可能是學習成本比較高吧,加上公司裏面使用的rancher1.6,我就直接用rancher來作為容器編排管理的切入點了,只是我這裏采用的是rancher2.15版本。 非常意外的是,以前rancher1.6版本還支持docker compose、swarm等集成,但是我從rancher2.15版本裏卻找不到入口了,直接是對kubernates的集成管理,這也反向突出了kubernates確有一統之勢。 整體來說,rancher是相對簡單的,至少從滿足我的操作要求來說,依然是使用的kubernates,但是卻沒有那麽大的復雜度,當然,這僅僅是我的猜測而已,因為我根本沒有使用過原生kubernates,開始之前我們看一下配置推薦。

部署大小集群(個)節點(個)vCPU內存
不超過5 最多50 4C 16GB
不超過100 最多500 8C 32GB
超過100 超過500

一、安裝rancher(v2.x)

直接通過docker鏡像來運行我們的rancher,首先,先從鏡像中心下載rancher鏡像,如果是1.x系列的,鏡像名為rancher/server,而2.x是rancher/rancher,我們使用2.x版本的,所以,執行如下命令即可:

$ docker pull rancher/rancher
技術分享圖片

可通過docker image ls命令查看我們pull的鏡像列表

技術分享圖片

查看rancher鏡像詳細信息

$ docker inspect rancher/rancher:latest
技術分享圖片

從中可以看出一些對我們有用的環境變量Env,以及數據卷Volumes等一般在Dockerfile構建中的參數。顯而易見,rancher鏡像主要有兩個volume目錄,默認方式是采用匿名卷的方式。接下來我們使用掛載到指定的主機目錄方式來進行數據卷持久化同時啟動rancher。

執行如下命令,在宿主機創建兩個掛載目錄

$ mkdir -p /docker_volume/rancher_home/rancher
$ mkdir -p /docker_volume/rancher_home/auditlog
技術分享圖片

接下來我們啟動rancher容器

$ docker run -d --restart=unless-stopped -p 80:80 -p 443:443 -v /docker_volume/rancher_home/rancher:/var/lib/rancher -v /docker_volume/rancher_home/auditlog:/var/log/auditlog --name rancher rancher/rancher  
技術分享圖片

執行如下命令查看我們剛才啟動的容器信息

$ docker container ls
技術分享圖片

到這裏,我們的rancher已經在docker容器裏運行起來了,接下來,我們將開始通過rancher的web界面來進行容器管理等操作。

二、Rancher可視化管理

2.1 初始配置

訪問rancher的管理web頁面:https://192.168.225.129

技術分享圖片

為admin賬戶設置默認密碼並點擊繼續按鈕後會跳轉到如下頁面,讓你設置rancher server url,需要註意的是URL可以是IP地址或主機名,但是你要保證群集的每個節點都能夠連接到它。

技術分享圖片

點擊Save URL按鈕後,即將跳轉到rancher管理主頁。

技術分享圖片

你可以通過右下角的語言選項來選擇語言,這裏我們選擇簡體中文。

技術分享圖片 技術分享圖片

2.2 創建集群

點擊上面圖中的添加集群按鈕,進入添加集群頁面

技術分享圖片

選擇添加主機自建Kubernetes集群CUSTOM,輸入你的集群名稱,當然如果你需要配置更多,下面的成員角色、集群選項等幾個tab都可展開進行詳細的配置,這裏我們不進行配置,直接點擊下一步,進入到下一步的頁面。

技術分享圖片

這裏我們勾選上所有的主機角色,然後將頁面中第二步裏顯示的命令復制到宿主機進行執行,點擊右邊的


技術分享圖片

圖標即可復制,下面的命令是我復制出來的命令:

$ sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.1.5 --server https://192.168.225.129 --token zj7gbhp4brncd7fzx664nm4dbh6rxqt5bz2xcdt6klmcwk9xsqtxqq --ca-checksum 34a2465107c418fb8f5e6851ed28f8b518d76abc84ab82b2554158aae978ec7c --etcd --controlplane –worker
技術分享圖片

執行成功後我們的瀏覽器中會提示如下圖所示的信息[1臺新主機註冊成功],之後我們便可點擊完成按鈕。

技術分享圖片

完成按鈕點擊後,會跳轉到集群首頁,如下圖所示:

技術分享圖片

這時候你可以稍作等待,這個時間可能有點長,因為這期間會在後臺給我們pull多個鏡像並會啟動多個容器。直到集群處於Active狀態(如下圖)時,說明集群創建成功了。

技術分享圖片

我們可以通過docker image ls和docker container ls看看剛才集群創建過程中都為我們拉取了哪些鏡像和啟動了哪些容器:

技術分享圖片 技術分享圖片

2.3 部署服務

在上一步創建的集群中給我們分配了兩個項目Default和System,接下來我們在Default項目中部署我們的服務,進入如下頁面:

技術分享圖片

點擊部署服務按鈕,進入到部署頁:

技術分享圖片

你可以在部署頁中輸入你的應用名稱,可以指定部署多少個Pod(k8s中的概念),選擇對應的鏡像,然後配置各種參數策略,如果你想進行數據持久化可以到數據卷的tab中進行配置,如果你有參數的定義可以到環境變量的tab中進行指定,最後再啟動它。這看起來似乎是更方便的讓我們執行了docker run命令,前提是你得熟悉docker中各種命令的使用及含義。本篇實踐記錄中我們並沒有實際的部署一個服務,更多的是演示了需要部署服務的時候它的入口在哪裏,部署服務的頁面中都有哪些參數可供我們配置。

結束語: 本篇實踐記錄中記錄了rancher2的安裝與可視化界面的簡單使用,並簡單介紹了最常用的部署服務裏都有哪些功能。在接下來,我們會通過部署一個jenkins服務來作為示例,更好的演示我們怎麽在rancher中部署服務。
本篇實踐記錄中所有的操作都是基於前面幾篇創建的環境上下文而實現的,如果你有興趣可以了解了解:
Docker決戰到底(一)虛擬機中安裝ubuntu系統
Docker決戰到底(二)Docker環境搭建

Docker決戰到底(三) Rancher2.x的安裝與使用 - 簡書