《2臺虛擬機器》docker單節點線上安裝rancher2.5.2最新穩定版

哈哈災難發表於2020-12-07

線上安裝

注意事項:

1.server建議配置為4vCPUs+8G記憶體,agent建議2vCPUs+4G記憶體,這樣可以保證相對穩定的執行。且官方建議生產環境server和agent不要裝在同一臺機器上,否則啟動容器時會埠衝突啟動失敗,如需裝在同一臺機器上,也很簡單,只需要在啟動rancher/server時修改對映的容器外部埠就行,後續有提到怎麼解決。

2.執行17步下載完映象後,建議開啟docker日誌檢視rancher/server容器的啟動情況,命令:docker logs 容器ID。實時檢視日誌,新增 -f  引數:docker logs -f 容器ID。

1.準備兩臺最小化安裝的虛擬機器,本次測試使用centos7.6,官方建議centos系列應不低於7.5(宿主機配置:win10-4核8執行緒24G記憶體)

虛擬機器資源有限,此配置測試執行過程不是特別穩定,估計是server的CUP資源不夠。有條件建議配置越高越好,rancher2還是比較吃資源的

192.168.44.100  server   2核4執行緒 8G記憶體 50G儲存
192.168.44.110  agent    2核4執行緒 8G記憶體 50G儲存

2.兩臺機器是新裝的虛擬機器,先配置網路,再使用xshell5連線伺服器完成後續操作。

兩臺機器配置方式一樣,修改IP資訊分別執行就行,centos7.6的配置檔案是這個:/etc/sysconfig/network-scripts/ifcfg-ens33

修改靜態IP

sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=static/g' /etc/sysconfig/network-scripts/ifcfg-ens33

修改啟動時啟用網路卡

sed -i 's/ONBOOT=no/ONBOOT=yes/g' /etc/sysconfig/network-scripts/ifcfg-ens33

新增IP、子網掩碼、閘道器、DNS

cat >> /etc/sysconfig/network-scripts/ifcfg-ens33 <<-EOF
IPADDR=192.168.44.100
NETMASK=255.255.255.0
GATEWAY=192.168.44.2
DNS1=114.114.114.114
EOF

重啟網路卡

systemctl restart network

3.在兩臺伺服器新增hosts解析記錄並修改主機名

修改/etc/hosts檔案

cat >> /etc/hosts <<-EOF
192.168.44.100 server
192.168.44.110 agent
EOF

修改主機名,主機名不能重複

server虛擬機器:hostnamectl set-hostname server

agent虛擬機器:hostnamectl set-hostname agent

4.臨時關閉sellinux

sudo setenforce 0

5.修改配置檔案/etc/selinux/config永久關閉selinux

sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

6.關閉防火牆及防火牆開機自啟

sudo systemctl stop firewalld && systemctl disable firewalld

7.安裝wget

sudo yum -y install wget

8.先備份yum源

sudo cd /etc/yum.repos.d/ && mv CentOS-Base.repo CentOS-Base.repo_bak

9.下載yum的阿里雲

sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

10.清除yum源並重新建立快取

sudo yum clean all && yum makecache

11.安裝必要工具包(提供yum-config-manager命令)

sudo yum -y install yum-utils

12.新增docker-ce資料來源

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && yum makecache fast

13.列出docker-ce可安裝列表

sudo yum list docker-ce --showduplicates | sort -r

14.安裝最新版docker-ce

sudo yum -y install docker-ce

檢視docker資訊

docker --version 或者 docker info(詳細資訊)

15.申請並配置阿里雲個人免費映象加速器,以及新增一些docker調優配置

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"],
  "log-driver":"json-file",
  "log-opts": {"max-size":"100m", "max-file":"3"},
  "max-concurrent-downloads": 10,
  "max-concurrent-uploads": 10,
  "storage-driver": "overlay2",
  "oom-score-adjust": -1000
}
EOF

將https://xxxxxx.mirror.aliyuncs.com換成你自己的阿里加速地址

16.過載配置、啟動(重啟)docker、加入開機自啟

sudo systemctl daemon-reload && systemctl restart docker && systemctl enable docker

17.docker安裝rancher2.5.2(server)

以下是使用rancher的預設證書安裝,如需使用自己的證書自行查閱rancher2官方文件中心,非常詳細。

rancher/server和rancher/agent在不同機器安裝的,在server虛擬機器執行命令安裝最新穩定版rancher/rancher:stable(目前最新穩定版是2.5.2):

sudo docker run -d --restart=unless-stopped --privileged -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:stable

如rancher/server和rancher/agent安裝在同一臺機器,執行下面這句。-p引數修改容器外部訪問的埠,80對映為8080,443對映為8443

sudo docker run -d --restart=unless-stopped --privileged -p 8080:80 -p 8443:443 \
-v /docker_volume/rancher_home/rancher:/var/lib/rancher \
-v /docker_volume/rancher_home/auditlog:/var/log/auditlog \
--name rancher2 rancher/rancher:stable

執行命令後,docker會向映象倉庫拉取建立rancher/server:stable容器所需映象,當映象pull結束後,需要幾分鐘才能完全啟動

18.登入rencher

訪問地址:https://192.168.44.100:443 或者 https://192.168.44.100:8443,rancher2預設訪問的是https,不確定是不是隻支援https,不管了反正不重要

下圖是二次登入介面。初次登入顯示會有所不同,但也只需要設定admin登入密碼(無限制)和同意使用協議,然後咔咔點儲存就可以,登入後會先給你彈個框一堆英文,不感興趣的直接關閉,比如我。右下角可以修改簡體中文顯示。

19.新增一個叢集

rancher2.5.2版本是預設有一個local叢集的。2.4.x版本好像沒有,也不知道哪個版本開始有的,懶得管,反正當沒看見別用它就行,自己建立一個新叢集。左下角顯示我用的版本是2.5.3,我很懵,我明明記得安裝的時候最新穩定版rancher/rancher:stable是2.5.2,難道我折騰的過程中穩定版升級到2.5.3了?辣眼睛,你們當沒看到好了,此處略過:)

sssss是我提前建立好了的叢集。下面來看一下怎麼建立叢集,非常的簡單,跳著說吧。點選【新增叢集】-【自定義】,然後填寫一個叢集名字(名字能填寫的特殊字元好像只有"-",比如rancher-server),其他預設,後期玩會了再調整。點選下一步之後,看到如下圖所示:

由於我只準備了一臺虛擬機器安裝agent,因此我選擇三個角色,etcd,control,worker。選擇好了點選黑框右邊的複製,到agent主機ssh終端執行,同樣需要拉取建立agent容器所需全部映象。注意注意,當映象pull完成之後就開始部署容器了,這時就需要切換到server主機ssh終端檢視部署日誌了,不少同學反映新增agent主機失敗找不到原因,在server端的docker部署日誌裡可以看到。

檢視日誌的命令:docker logs -f <rancher/rancher:stable的容器ID>

比如我的就是下圖這個,那麼命令就是:docker logs -f 2ab920764f64,還有其他方式可以檢視,就自行探索了。如果沒報錯,那麼恭喜你搞定了,如果報錯......好,沒問題,我們下一個走起。

20.部署工作負載

前面說到如果部署agent主機報錯的話,我分享一下部署的時候遇到的錯誤吧,僅供參考:

一個read-only....too long的好像是錯誤的錯誤,這個不影響最終部署的完成,但是原因未找到。

一個get請求丟失,連線失敗的錯誤。但是好像agent主機執行的時候會啟動一個間隔15s的監聽計劃(檢視agent主機日誌可以看到),它會自動連線server主機完成部署,多等幾分鐘就可以了。如果等待很久也不行,清除所有agent主機的rancher資料(官方文件有詳細的清除節點資料指令碼),重新部署即可,一般都沒問題。我部署了很多次都成功,主要是想調優和測試所以反覆恢復虛擬機器快照嘗試部署。其他的沒什麼了。

進去正題,部署工作負載,如下圖:依次點1、2、3進入sssss叢集部署工作負載預設名稱空間裡如下圖,啥都沒有。我們點選【工作負載】-【部署服務】。

部署服務介面如下圖:

以部署mysql5.7為例,填寫紅框內的。其他的預設,啟動。


當狀態變為active的堅強綠時,就可以通過資料庫連線工具去連線這個MySQL了。

埠就是對映的30001埠,使用者名稱是root,密碼就是前面設定的MYSQL_ROOT_PASSWORD的值,IP點mysql服務進去就能看到了。登入測試成功。

總結一下:

       文件部分步驟不是必須的,各位自行斟酌使用。底子薄的同學最好先按照本文部署,以免出錯,後續熟悉rancher以後再做更多的擴充和優化。rancher中文文件非常詳細,有時間的同學一定要細讀,能避免不少錯誤。rancher確實很優秀,相比純粹的docker、k8s等,rancher管理和部署效率提升很多,頁面操作也非常友好,難怪最近很火啦。當然,本篇文件只是rancher的入門級部署嘗試,涉及的點窄而淺。期待後續能有更多有趣的發現。

相關文章