為什么要使用Rancher
Rancher是一個開源的企業級容器管理平台。通過Rancher,企業再也不必自己使用一系列的開源軟件去從頭搭建容器服務平台。Rancher提供了在生產環境中使用的管理Docker和Kubernetes的全棧化容器部署與管理平台。
Rancher的官方文檔:https://rancher.com/docs/rancher/latest/en/
版本選擇
版本選擇參照官方文檔:supported version of Docker
根據上圖,本文選用以下符合要求的最新版本
|
|
|
|
|
|
|
|
|
|
|
系統准備
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
禁用IPV6
sudo vi /etc/sysctl.d/99-sysctl.conf # 添加以下內容 #------------------------------------------ net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1 #------------------------------------------ sudo sysctl -p
禁用虛擬內存swap
# 不重啟電腦,禁用啟用swap,立刻生效 sudo swapoff -a # 啟用命令 sudo swapon -a # 查看交換分區的狀態 sudo free -m # 永久禁用Swap,在/etc/fstab中swap分區這行前加 # sudo vi /etc/fstab #------------------------------------------ # /dev/mapper/docker201--vg-swap_1 none swap sw 0 0 #------------------------------------------
安裝指定版本的docker
在以上三台主機上,安裝指定版本的docker,參照docker的部署安裝-Ubuntu並配置阿里鏡像加速器
查看docker信息能看到以下內容:
sudo docker info #------------------------------------------ Registry Mirrors: https://lwdxerv9.mirror.aliyuncs.com #------------------------------------------ # 重啟docker服務 sudo systemctl daemon-reload sudo systemctl restart docke # 檢查防火牆是否啟動 systemctl list-unit-files | grep enable | grep ufw ufw.service enabled
安裝Rancher管理端
在rancher1上操作
sudo docker run -d --name rancher -v /etc/localtime:/etc/localtime -v /opt/rancher/mysql:/var/lib/mysql --restart=unless-stopped -p 8080:8080 rancher/server $ sudo docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4aba45218a7a rancher/server "/usr/bin/entry /u..." 6 minutes ago Up 5 minutes 3306/tcp, 0.0.0.0:8080->8080/tcp rancher $ sudo docker exec -it rancher /bin/bash root@4aba45218a7a:/# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 15:03 ? 00:00:00 /usr/bin/s6-svscan /service root 7 1 0 15:03 ? 00:00:00 s6-supervise cattle root 8 1 0 15:03 ? 00:00:00 s6-supervise graphite_exporter root 9 1 0 15:03 ? 00:00:00 s6-supervise mysql root 10 7 22 15:03 ? 00:01:41 java -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -Xms128m -Xmx2g -XX:+HeapDumpOnOutOfMemoryErr mysql 113 9 1 15:03 ? 00:00:07 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql root 249 10 0 15:03 ? 00:00:03 rancher-catalog-service --config repo.json --refresh-interval 300 root 284 10 0 15:04 ? 00:00:01 websocket-proxy root 298 10 1 15:04 ? 00:00:04 go-machine-service root 306 10 0 15:04 ? 00:00:00 secrets-api server --enc-key-path . root 307 10 0 15:04 ? 00:00:00 webhook-service root 325 10 0 15:04 ? 00:00:00 rancher-compose-executor root 332 10 0 15:04 ? 00:00:00 rancher-auth-service --auth-config-file authConfigFile.txt root 425 0 0 15:07 ? 00:00:00 /bin/bash root 440 0 0 15:07 ? 00:00:00 /bin/bash root 507 0 0 15:10 ? 00:00:00 /bin/bash root 523 507 0 15:10 ? 00:00:00 ps -ef # 使用以下命令可以查看rancher容器日志 sudo docker logs -f rancher
配置環境
點擊編輯設置后,在彈出的頁面中,更改如下幾個參數:
Private Registry for Add-Ons and Pod infra Container Images(修改私有倉庫地址):registry.cn-shenzhen.aliyuncs.com
Image namespace for Add-ons and Pod infra Container Images(修改AAONS組件命名空間):rancher_cn
Image namespace for kubernetes-helm (修改kubernetes-helm命名空間):rancher_cn
Pod Infra Container Image (修改默認的pause鏡像名):rancher_cn/pause-amd64:3.0
參數設置完,點擊頁面下方的設置按鈕返回環境模板編輯頁面,保持環境模板其他參數不變,點擊頁面下方的創建按鈕。
添加主機
因為是第一次添加主機,系統會要求你確認節點注冊地址,我們直接點擊保存。
依次登陸各個宿主機,執行5里面的腳本。
如果需要把rancher1加為宿主機,那么需要在4里面填寫管理端和宿主主機之間互通的內網IP地址,建議不要添加rancher1為宿主機,方便后續做rancher server集群高可用。
按此辦法可添加多台宿主機
因k8s管理復雜,本文只是演示如何配置k8s,后續文章的環境將繼續使用rancher默認的Cattle,並且將docker升級到最新版本
參考文檔
# 升級前 組件 版本 Rancher v1.6.14 Cattle v0.183.37 用戶界面 v1.6.37 Rancher CLI v0.6.7 Rancher Compose v0.12.5 # 升級系統及相關軟件包(含docker) apt update apte upgrade uname -r 4.4.0-116-generic docker -v Docker version 18.03.1-ce, build 9ee9f40 # 升級rancher docker pull rancher/server docker pull rancher/server:stable docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e5ff13a96eef rancher/server "/usr/bin/entry /usr鈥 5 months ago Up 8 minutes 3306/tcp, 0.0.0.0:8080->8080/tcp rancher docker stop e5ff13a96eef docker rm e5ff13a96eef sudo docker run -d --name rancher -v /etc/localtime:/etc/localtime -v /opt/rancher/mysql:/var/lib/mysql --restart=unless-stopped -p 8080:8080 rancher/server # 刪除原有的容器 # 刪除鏡像 docker images REPOSITORY TAG IMAGE ID CREATED SIZE rancher/server latest 85b3b338d0be 3 weeks ago 1.08GB rancher/server <none> d63b9b4bd205 5 months ago 1.08GB docker rmi d63b9b4bd205 # 升級后 組件 版本 Rancher v1.6.18 Cattle v0.183.52 用戶界面 v1.6.43 Rancher CLI v0.6.10 Rancher Compose v0.12.5