Rancher Server HA的高可用部署

2018/07 作者:ihunter 0 0


Rancher Server HA的高可用部署

 一、机器规划

二、数据库服务器的安装

Rancher Server HA1的安装

Rancher Server HA2的安装

HAProxy 负载均衡器的安装

六、注册主机(工作主机)

七、参考链接(视频)

 

本文主要以Rancher培训视频为基础,做了学习笔记,方便自己日后查看。

Rancher Server HA Demo视频http://v.youku.com/v_show/id_XMjg2NTE3MDI2OA 

 

、机器规划

1MySQL数据库服务器:  42.62.83.6

2RancherServerHA142.62.83.5

3RancherServerHA242.62.83.4

4HAProxy负责均衡主机:42.62.83.3

5RancherAgent主机:42.62.83.2

 

、数据库服务器的安装

#安装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命令,创建数据库,设置数据库访问权限

CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';

GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';

GRANT ALL ON cattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle';

 

Rancher Server HA1的安装

#使用文档中的命令,在HA1主机上,

#启动RancherServer容器RancherHA1

docker run -d \

--restart=unless-stopped \

--name RancherHA1 \

-p 8080:8080 \

-p 9345:9345 \

rancher/server:v1.6.10 \

--db-host  \

--db-port 3306 \

--db-user cattle \

--db-pass cattle \

--db-name cattle \

--advertise-address 

 

#查看容器运行的状态:

docker logs -f RancherHA1

 

#使用谷歌浏览器访问RancherServer8080端口

http://:8080

 

Rancher Server HA2的安装

#HA2主机上,启动RancherServer容器RancherHA2

docker run -d \

--restart=unless-stopped \

--name RancherHA2 \

-p 8080:8080 \

-p 9345:9345 \

rancher/server:v1.6.10 \

--db-host  \

--db-port 3306 \

--db-user cattle \

--db-pass cattle \

--db-name cattle \

--advertise-address 

 

HAProxy负载均衡器的安装

#在两台Rancher Server主机之前,

#使用F5等外部负载均衡器,来实现HA访问,

#也可以使用HAProxy软件的方式来实现HA

#对外1IP分担到2RancherServer上。

#本实验就是使用一台主机安装HAProxy软件来实现负载均衡的

 

#下面在Ubuntu系统上安装HAProxy

sudo apt-get install haproxy

 

#根据官方提供的HAProxy配置文件进行修改:

#网址:

http://rancher.com/docs/rancher/v1.6/en/installing-rancher/installing-server/basic-ssl-config/  

#配置文件为/etc/haproxy/haproxy.cfg

#修改bind部分,禁用443端口,启用8080端口

 

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 *:443 ssl crt /etc/haproxy/certificate.pem

  bind *:8080

  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

  server websrv1 HA1_IP>:8080 weight 1 maxconn 1024

  server websrv2 HA2_IP>:8080 weight 1 maxconn 1024

  server websrv3 HA3_IP>:8080 weight 1 maxconn 1024

 

#启动HAProxy服务

haproxy -f /etc/haproxy/haproxy.cfg &

 

#查看8080端口是否已经在监听中

netstat -antlp |grep 8080

 

#通过HAProxyIP8080端口登录到RancherServer

http://:8080

 

六、注册主机(工作主机)

#RancherServer中注册主机时,

#使用的“主机注册地址”是:8080

#不是RancherServerHA1的也不是HA2

 

七、参考链接:

Rancher Server HA Demo视频

http://v.youku.com/v_show/id_XMjg2NTE3MDI2OA 


Rancher HA 环境部署

DB 配置

CREATE DATABASE IF NOT EXISTS cattle COLLATE = 'utf8_general_ci' CHARACTER SET = 'utf8';

GRANT ALL ON cattle.* TO 'cattle'@'%' IDENTIFIED BY 'cattle';

GRANT ALL ON cattle.* TO 'cattle'@'localhost' IDENTIFIED BY 'cattle';

Server配置示例,如:

docker run -d --restart=unless-stopped -p 8080:8080 -p 9345:9345 rancher/server:v1.6.2 --db-host 42.62.51.26 --db-port 3306 --db-user cattle --db-pass cattle --db-name cattle --advertise-address 42.62.83.4

注:

参数--advertise-address 后为当前主机 IP

如果更换 -p 8080:8080 主机端口参数,请添加--advertise-http-port 参数


HAproxy配置文件示例如下:

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 tcp
#bind *:443 ssl crt /etc/haproxy/certificate.pem
bind *:8080
default_backend rancher_servers

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 42.62.83.5:8080 weight 1 maxconn 1024 //Rancher server IP:Port
server websrv2 42.62.83.4:8080 weight 1 maxconn 1024   //Rancher server IP:Port



如果你觉得文档阅读不够清晰直观,不妨观看Rancher的技术专家录制的视频,为你演示如何部署Rancher HA环境吧!



赞(2) 更多分享

上篇: 搭建私有 Docker 仓库服务器
下篇: 基于Docker搭建MySQL主从复制