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的控制台
添加转发规则
现在,可以通过http://<IP>
,默认端口:80
来访问inky1
这个app。
0 0
- Mesos&PaaS系列文章之五——负载均衡与服务发现
- Mesos:服务发现与负载均衡
- Mesos&PaaS系列文章之四——Mesos简单使用
- Mesos&PaaS系列文章之一——环境准备
- Mesos&PaaS系列文章之二——Master节点安装
- Mesos&PaaS系列文章之三——Slave节点安装
- SpringCloud微服务系列(4): 服务发现与消费及客户端负载均衡Ribbon
- gRPC服务发现&负载均衡
- gRPC服务发现&负载均衡
- Eureka+ribbon 实现服务注册与发现和负载均衡
- 微服务架构模式系列文章之五:服务端服务发现
- 集群与负载均衡系列——nginx实现tomcat集群与负载均衡(1)
- Marahon-lb的服务发现/负载均衡
- Marahon-lb的服务发现/负载均衡
- kubernetes 服务发现和负载均衡
- 集群与负载均衡系列(4)——消息队列之Rabbitmq的搭建
- 集群与负载均衡系列(5)——消息队列之spring-boot整合Rabbitmq
- 集群与负载均衡系列(7)——消息队列之分布式事务
- 在windows直接运行Qt编译出来的可执行程序出现了如下提示错误: this application has requested the runtime to terminate it an unu
- 查到的小波讲解
- PHP 数据类型
- ActionBar标题Lego显示和项目的桌面图标显示
- 基于springmvc, jsp表单提交数据转换问题
- Mesos&PaaS系列文章之五——负载均衡与服务发现
- 【软考】---软件开发方法
- Activity启动模式
- android 屏幕适配
- 重磅教程!帮你全面彻底搞定Material design的学习笔记
- Spring MVC: <context:annotation-config> 和 <context:component-scan>区别
- openSession和getCurrentSession之间的区别
- 读《C专家编程》笔记-第三章 分析C语言的声明
- #ifndef/#define/#endif使用和交叉引用问题详解