Rancher1.6安裝和使用
一 下圖是rancher官方的1.6示意圖
簡介
本文介紹的1.6版本不是基於kubernetes編排引擎,而是Rancher自己的Cattle。
Cattle 可以編排docker-compose型別的檔案,這種方式適合容器入門者使用,也可以適合中小規模範圍容器編排使用,它的優點是使用簡單不需要學習Kubernetes那麼複雜的知識,不過它也很穩定,已經在我們舊生產環境執行好幾年。
二 安裝rancher1.6
1 安裝資料庫
容器執行,您也可以二進位制或RPM或其它方式安裝。
docker run --name mysql-data -v /data:/var /lib/mysql -e MYSQL_ROOT_PASSWORD="123456789" -p 3306:3306 -d mysql:5.6
2 分別在兩臺機器上安裝rancher
這裡演示的是高可用叢集,如您不需要也可以安裝單個節點,容器啟動時對映8080埠在宿主機
docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 rancher/server \ --db-host 172.16.100.93 --db-port 3306 --db-user root --db-pass 123456789 --db-name cattle \ --advertise-address 172.16 .100.91
因為是高可用,前端需要一個proxy來代理這兩個rancher節點(這裡採用haproxy)
同樣是容器啟動
docker run -d --restart=unless-stopped --name haproxy -p 8888:8888 -p 28080:28080 -v /server/config/haproxy:/usr/local/etc/haproxy:ro haproxy:1.7
haproxy的配置檔案
global
chroot /usr/local
daemon
nbproc 1
pidfile /opt/haproxy/logs/haproxy.pid
ulimit -n 65536
#spread-checks 5m
#stats timeout 5m
#stats maxconn 100
########預設配置############
defaults
mode tcp
retries 3 #兩次連線失敗就認為是伺服器不可用,也可以通過後面設定
option redispatch #當serverId對應的伺服器掛掉後,強制定向到其他健康的伺服器
option abortonclose #當伺服器負載很高的時候,自動結束掉當前佇列處理比較久的連結
maxconn 32000 #預設的最大連線數
timeout connect 5000ms #連線超時
timeout client 30000ms #客戶端超時
timeout server 30000ms #伺服器超時
timeout check 2000 #心跳檢測超時
log 127.0.0.1 local0 err #[err warning info debug]
listen stats #監控
mode http
bind 0.0.0.0:8888
stats enable
stats uri /stats
stats realm Global\ statistics
stats auth admin:admin
frontend http-in
mode http
bind *:28080
#bind *:8080 ssl crt /etc/haproxy/certificate.pem
default_backend rancher_servers
# Add headers for SSL offloading
#http-request set-header X-Forwarded-Proto https if { ssl_fc }
#http-request set-header X-Forwarded-Ssl on if { ssl_fc }
acl is_websocket hdr(Upgrade) -i WebSocket
acl is_websocket hdr_beg(Host) -i ws
use_backend rancher_servers if is_websocket
backend rancher_servers
mode http
option httpchk HEAD /login HTTP/1.0
server websrv106 172.16.100.91:8080 weight 1 maxconn 1024 check
server websrv107 172.16.100.92:8080 weight 1 maxconn 1024 check
3 訪問,訪問haproxy地址
http://ha-proxy-host-ip:28080
4 配置 Rancher Work節點主機
安裝好docker。並配置好docker配置檔案引數:/etc/docker/daemon.json,如果您不知道如何配置可參考官方文件。
配置好系統核心引數,可參考官方文件優化。
5 管理Rancher
登入Rancher介面,新建您的環境(環境都是相互獨立隔離的,每個環境中可以新增您的work主機"工作負載主機")
這是我的例子:
新增好環境後,進入您的某個環境中,新增工作負載主機
新增主機標籤,並複製文字,到您的工作負載主機黏貼這段文字後會自動拉取agent映象,並註冊到Rancher該環境中(可能拉取映象時間較久,需要耐心等待)
正確註冊後,主機已經顯示在改環境中
6 測試執行一個demo
測試一個容器,輸入映象地址
掛載卷,支援nfs(需要先安裝nfs外掛)、本地、其它儲存需要安裝外掛支援
掛載方式: /儲存伺服器:/容器路徑
排程機器,可以選擇某個主機,也可以按標籤排程(標籤填寫我們加入主機時候填寫的標籤,也可以在host頁面檢視主機的標籤)
其它引數(安全/主機:可限制該容器的許可權和cpu記憶體使用,密文:可用該方式管理密碼,標籤:如果主機限制了只有符合標籤的容器才能在上面執行,那麼標籤項您就要給該容器加上,否則主機將不允許您的該容器執行)
訪問:
訪問主機的8888埠(該埠對映在主機上,已經暴露在主機埠,所以可以直接訪問)
http://主機ip:8888
7 如何用統一的編譯節點發布埠
以上方法將會在主機上暴露無數的埠,如果執行大量的容器將不好管理,如何做到工作負載主機上執行容器叢集內部網路,在某個邊緣節點上暴露埠訪問呢?
可以用Rancher自帶的Haproxy或其它邊緣軟體做統一出口代理
詳情安裝方式和使用方式,如果有需要後期我可以補上,看看小夥伴是否需要 ^_^