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的控制台
添加转发规则
现在,可以通过http://<IP>
,默认端口:80
来访问inky1
这个app。