Rancher HA高可用集羣部署文檔
一.前期準備工作
1.rancher server節點:
1).8G或者16G及以上(測試環境你又3個G就夠了)
2). server節點此次操作將會佔用8080,9435端口(如果這兩個端口已經被佔用可以自定義其他端口)。
3). 版本:rancher: V1.6
2.rancher agent節點要求:
1). docker版本建議是v1.13.1,其實用其他版本也可以了,反正我用yum直接裝的可以用。
2). 9345,8080端口要求各節點互相訪問同server節點要求,保證端口統一即可。
3). 各節點內存至少1GB以上最好不要出現跳崖式的差異。
3.數據庫MYSQL:
1).推薦選用mysql-5.7和mariadb(懶人推薦mariadb)
2). mysql正式環境最好做個主從或者雙主集羣
4.各節點機器信息
Rancher-servier:
192.168.120.9
192.168.120.176
Rancher-agent:
192.168.120.9
192.168.120.176
192.168.120.17
Haproxy:
192.168.120.17
Mysql:
192.168.120.17
部署架構圖:
因爲單純是測試玩的,每臺機器內存都不高,數據庫和haproxy裝在一起了。
二.Mysql安裝及配置
192.168.120.17:(selinux,firewall關閉)
#安裝mariadb數據庫服務器
yum install -y mariadb mariadb-server
#設置開機啓動,並啓動數據庫服務器
chkconfig mariadb on
service mariadb start
#查看mysql相關的命令
mysql
#MySQL安全加固,設置root密碼
mysql_secure_installation
#登錄mysql數據庫
mysql -u root -p
#使用文檔中的MySQL命令,創建數據庫,設置數據庫訪問權限
三.Rancher-Server節點安裝
192.168.120.9:
docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 docker.io/rancher/server:latest --db-host 192.168.120.17 --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle --advertise-address 192.168.120.9
192.168.120.176:
docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 docker.io/rancher/server:latest --db-host 192.168.120.17 --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle --advertise-address 192.168.120.176
#不要嘗試加“--name”參數,docker容器的名字是隨機的鏡像裏不支持這個參數,這個是根據鏡像來的不是每個帖子都能用,這裏咱們使用的rancher-server鏡像是 v1.6.24
當出現如下問題時:(去掉—name參數即可)
/usr/bin/entry: line 119: exec: --: invalid option
exec: usage: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
/usr/bin/entry: line 119: exec: --: invalid option
exec: usage: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
/usr/bin/entry: line 119: exec: --: invalid option
``
四.Haproxy安裝及配置
192.168.120.17:
yum -y install haproxy
[root@bogon ~]# vim /etc/haproxy/haproxy.cfg
[root@bogon ~]# cat /etc/haproxy/haproxy.cfg
global
maxconn 4096
ssl-server-verify none
defaults
mode http
balance roundrobin
option redispatch
option forwardfor
timeout connect 5s
timeout queue 5s
timeout client 36000s
timeout server 36000s
frontend http-in
mode http
bind *:8080
default_backend rancher_servers
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
server websrv1 192.168.120.9:8080 weight 1 maxconn 1024
server websrv2 192.168.120.176:8080 weight 1 maxconn 1024
測試:
瀏覽器訪問192.168.120.17:8080
五.安裝Rancher-agent並添加host
點擊上圖複製按鈕,將複製的命令在需要添加的主機中執行,添加後效果2圖
#host的名字是調取Linux主機的hostname