Mesos&PaaS系列文章之五——负载均衡与服务发现

来源:互联网 发布:手机淘宝登入卖家 编辑:程序博客网 时间:2024/05/12 22:37

Mesos&Docker技术交流QQ群:491137983,一起学习,共同进步!

本环境中多实例应用的访问,可以通过Haproxy负载均衡服务提供支持,Haproxy的动态配置及实例的服务发现由Bamboo组件实现,当然,也可以使用大名鼎鼎的Consul来实现。

1.Haproxy组件

安装

yum install -y haproxy

配置忽略VIP及开启转发

echo net.ipv4.ip_forward=1 >> /etc/sysctl.confecho net.ipv4.ip_nonlocal_bind=1 >> /etc/sysctl.conf

重启系统或者执行以下命令

sysctl -e net.ipv4.ip_forward=1sysctl -e net.ipv4.ip_nonlocal_bind=1

重启haproxy服务

systemctl restart haproxy

2.Bamboo组件

1、安装或编译
方式一、通过二进制包安装

wget https://raw.githubusercontent.com/VFT/FileStore/master/bamboo/bamboo-0.2.15_1-1.x86_64.rpmrpm -ivh bamboo-0.2.15_1-1.x86_64.rpmwget -O /usr/bin/start-stop-daemon https://raw.githubusercontent.com/VFT/FileStore/master/bamboo/start-stop-daemonwget -O /etc/init.d/bamboo-server https://raw.githubusercontent.com/VFT/FileStore/master/bamboo/init.d-bamboo-serverchown root:root /etc/init.d/bamboo-serverchmod 755 /etc/init.d/bamboo-server && chmod 755 /usr/bin/start-stop-daemon

方式二、通过源码编译
编译Bamboo

# build dependenciessudo yum install -y golang rpm-build rubygems ruby-develsudo gem install  fpm  --no-ri --no-rdoc# setup a go build treesudo yum install -y git mercurialexport GOPATH=~/gopathmkdir $GOPATHgo get github.com/tools/godepgo install github.com/tools/godep# build the binary# get newest source codego get github.com/QubitProducts/bamboocd ${GOPATH}/src/github.com/QubitProducts/bamboo# or get a specil version source code,such as:# wget https://github.com/QubitProducts/bamboo/archive/v0.2.15.tar.gz# tar xzvf v0.2.15.tar.gz# cd bamboo-0.2.15/go build# edit builder/build.after-installsed -i '10,15s/configure)/*)/g' builder/build.after-install# edit builder/build.shsed -i 's/version=${_BAMBOO_VERSION:-"1.0.0"}/version=${_BAMBOO_VERSION:-"0.2.15"}/g' builder/build.shsed -i 's/arch="all"/arch="x86_64"/g' builder/build.shsed -i 's/pkgtype=${_PKGTYPE:-"deb"}/pkgtype=${_PKGTYPE:-"rpm"}/g' builder/build.sh#运行命令生成rpm包,输出到output目录./builder/build.sh#进入到output目录安装rpm包rpm -ivh bamboo-0.2.15_1-1.x86_64.rpm

编译start-stop-daemon

yum install -y gcc wgetwget http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gztar zxf apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gzcd apps/sys-utils/start-stop-daemon-IR1_9_18-2/gcc start-stop-daemon.c -o start-stop-daemoncp start-stop-daemon /usr/bin

配置bamboo-server启动(脚本位于源码包中)

wget https://github.com/QubitProducts/bamboo/archive/v0.2.14.tar.gztar xzvf v0.2.14.tar.gzcd bamboo-0.2.14/cp builder/init.d-bamboo-server /etc/init.d/bamboo-serverchown root:root /etc/init.d/bamboo-serverchmod 755 /etc/init.d/bamboo-server

2、配置

mkdir /var/bamboocp /opt/bamboo/config/haproxy_template.cfg /var/bamboo/cp /opt/bamboo/config/production.example.json /var/bamboo/production.json

修改/var/bamboo/production.json

{  "Marathon": {    "Endpoint": "http://192.168.2.71:8080,http://192.168.2.72:8080,http://192.168.2.73:8080",    "UseEventStream": true  },  "Bamboo": {    "Endpoint": "http://192.168.2.93:8000",    "Zookeeper": {      "Host": "192.168.2.71:2181,192.168.2.72:2181,192.168.2.73:2181",      "Path": "/marathon-haproxy/state",      "ReportingDelay": 5    }  },  "HAProxy": {    "TemplatePath": "/var/bamboo/haproxy_template.cfg",    "OutputPath": "/etc/haproxy/haproxy.cfg",    "ReloadCommand": "haproxy -f /etc/haproxy/haproxy.cfg -p /var/run/haproxy.pid -D -sf $(cat /var/run/haproxy.pid)",    "ReloadValidationCommand": "haproxy -c -f {{.}}"  },  "StatsD": {    "Enabled": false,    "Host": "localhost:8125",    "Prefix": "bamboo-server.production."  }}

说明:Marathon.Endpoint:Marathon服务的访问地址,Bamboo.Host:Bamboo服务控制台地址,Bamboo.Zookeeper.Host:Zookeeper服务访问地址

启动Bamboo服务
systemctl start bamboo-server
停止Bamboo服务
systemctl stop bamboo-server
开机启动
chkconfig bamboo-server on

3.Bamboo简单使用

按上述配置Bamboo安装后以后,Bamboo监听8000端口,可以通过http://<IP>:8000来访问bamboo的控制台
bamboo console
添加转发规则
bamboo edit
现在,可以通过http://<IP>,默认端口:80来访问inky1这个app。

0 0
原创粉丝点击