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

21 篇文章 1 订阅
5 篇文章 0 订阅

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

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

1.Haproxy组件

安装

yum install -y haproxy

配置忽略VIP及开启转发

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

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

sysctl -e net.ipv4.ip_forward=1
sysctl -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.rpm
rpm -ivh bamboo-0.2.15_1-1.x86_64.rpm
wget -O /usr/bin/start-stop-daemon https://raw.githubusercontent.com/VFT/FileStore/master/bamboo/start-stop-daemon
wget -O /etc/init.d/bamboo-server https://raw.githubusercontent.com/VFT/FileStore/master/bamboo/init.d-bamboo-server
chown root:root /etc/init.d/bamboo-server
chmod 755 /etc/init.d/bamboo-server && chmod 755 /usr/bin/start-stop-daemon

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

# build dependencies
sudo yum install -y golang rpm-build rubygems ruby-devel
sudo gem install  fpm  --no-ri --no-rdoc
# setup a go build tree
sudo yum install -y git mercurial
export GOPATH=~/gopath
mkdir $GOPATH
go get github.com/tools/godep
go install github.com/tools/godep
# build the binary
# get newest source code
go get github.com/QubitProducts/bamboo
cd ${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-install
sed -i '10,15s/configure)/*)/g' builder/build.after-install

# edit builder/build.sh
sed -i 's/version=${_BAMBOO_VERSION:-"1.0.0"}/version=${_BAMBOO_VERSION:-"0.2.15"}/g' builder/build.sh
sed -i 's/arch="all"/arch="x86_64"/g' builder/build.sh
sed -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 wget
wget http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
tar zxf apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
cd apps/sys-utils/start-stop-daemon-IR1_9_18-2/
gcc start-stop-daemon.c -o start-stop-daemon
cp start-stop-daemon /usr/bin

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

wget https://github.com/QubitProducts/bamboo/archive/v0.2.14.tar.gz
tar xzvf v0.2.14.tar.gz
cd bamboo-0.2.14/
cp builder/init.d-bamboo-server /etc/init.d/bamboo-server
chown root:root /etc/init.d/bamboo-server
chmod 755 /etc/init.d/bamboo-server

2、配置

mkdir /var/bamboo
cp /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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值