當越來越多的容器化應用被部署,一個可以管理編排這些容器的工具此時就顯得尤為重要了。目前容器編排領域的佼佼者非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中各種命令的使用及含義。本篇實踐記錄中我們並沒有實際的部署一個服務,更多的是演示了需要部署服務的時候它的入口在哪里,部署服務的頁面中都有哪些參數可供我們配置。
作者:wendell_dev
鏈接:https://www.jianshu.com/p/40f4fbe1ec22
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。