首页 文章 精选 留言 我的

精选列表

搜索[task],共6615篇文章
优秀的个人博客,低调大师

利用Registrator和Consul实现mesos task的服务发现

实现目的: 因为mesos中实际的工作节点是slave,框架marathon启动的任务(容器)都是在随机的slave上执行,所以在每台slave上启动Registrator,用来发现本机上的容器,它会把当前宿主机上的容器自动注册到consul.但是consul找一台salve启动就行,它会把自己选为leader,其他slave上启动Registrator的时候指定此leader就行 环境: 192.168.0.149 Mesos-master、Zookeeper 192.168.0.161 Mesos-master、Zookeeper、Marathon 192.168.0.174 Mesos-master、Zookeeper 192.168.0.239 Mesos-slave、Consul-server、Registrator 192.168.0.236 Mesos-slave、Registrator 部署: 定义IP HOST_IP_1=192.168.0.149 HOST_IP_2=192.168.0.161 HOST_IP_3=192.168.0.174 192.168.0.149 启动Zookeeper [root@master-1~]#dockerrun-d--net="host"-eSERVER_ID=1-eADDITIONAL_ZOOKEEPER_1=server.1=${HOST_IP_1}:2888:3888-eADDITIONAL_ZOOKEEPER_2=server.2=${HOST_IP_2}:2888:3888-eADDITIONAL_ZOOKEEPER_3=server.3=${HOST_IP_3}:2888:3888garland/zookeeper 启动Mesos-master [root@master-1~]#dockerrun--net="host"-p5050:5050-e"MESOS_HOSTNAME=${HOST_IP_1}"-e"MESOS_IP=${HOST_IP_1}"-e"MESOS_ZK=zk://${HOST_IP_1}:2181,${HOST_IP_2}:2181,${HOST_IP_3}:2181/mesos"-e"MESOS_PORT=5050"-e"MESOS_LOG_DIR=/var/log/mesos"-e"MESOS_QUORUM=2"-e"MESOS_REGISTRY=in_memory"-e"MESOS_WORK_DIR=/var/lib/mesos"-dgarland/mesosphere-docker-mesos-master 192.168.0.161 启动Zookeeper [root@master-2~]#dockerrun-d--net="host"-eSERVER_ID=2-eADDITIONAL_ZOOKEEPER_1=server.1=${HOST_IP_1}:2888:3888-eADDITIONAL_ZOOKEEPER_2=server.2=${HOST_IP_2}:2888:3888-eADDITIONAL_ZOOKEEPER_3=server.3=${HOST_IP_3}:2888:3888garland/zookeeper 启动Mesos-master [root@master-2~]#dockerrun--net="host"-p5050:5050-e"MESOS_HOSTNAME=${HOST_IP_2}"-e"MESOS_IP=${HOST_IP_2}"-e"MESOS_ZK=zk://${HOST_IP_1}:2181,${HOST_IP_2}:2181,${HOST_IP_3}:2181/mesos"-e"MESOS_PORT=5050"-e"MESOS_LOG_DIR=/var/log/mesos"-e"MESOS_QUORUM=2"-e"MESOS_REGISTRY=in_memory"-e"MESOS_WORK_DIR=/var/lib/mesos"-dgarland/mesosphere-docker-mesos-master 启动Marathon [root@master-2~]#dockerrun-d-p8080:8080mesosphere/marathonv0.14.0--masterzk://${HOST_IP_1}:2181,${HOST_IP_2}:2181,${HOST_IP_3}:2181/mesos--zkzk://${HOST_IP_1}:2181,${HOST_IP_2}:2181,${HOST_IP_3}:2181/marathon 192.168.0.174 启动Zookeeper [root@master-3~]#dockerrun-d--net="host"-eSERVER_ID=3-eADDITIONAL_ZOOKEEPER_1=server.1=${HOST_IP_1}:2888:3888-eADDITIONAL_ZOOKEEPER_2=server.2=${HOST_IP_2}:2888:3888-eADDITIONAL_ZOOKEEPER_3=server.3=${HOST_IP_3}:2888:3888garland/zookeeper 启动Mesos-master [root@master-3~]#dockerrun--net="host"-p5050:5050-e"MESOS_HOSTNAME=${HOST_IP_3}"-e"MESOS_IP=${HOST_IP_3}"-e"MESOS_ZK=zk://${HOST_IP_1}:2181,${HOST_IP_2}:2181,${HOST_IP_3}:2181/mesos"-e"MESOS_PORT=5050"-e"MESOS_LOG_DIR=/var/log/mesos"-e"MESOS_QUORUM=2"-e"MESOS_REGISTRY=in_memory"-e"MESOS_WORK_DIR=/var/lib/mesos"-dgarland/mesosphere-docker-mesos-master 192.168.0.239 安装Mesos-slave 安装mesosphere源 [root@slave-1~]#rpm-ivh/mesosphere-el-repo-7-1.noarch.rpm 安装mesos [root@slave-1~]#yum-yinstallmesos 配置mesos [root@slave-1~]#echozk://192.168.0.149:2181,192.168.0.161:2181,192.168.0.174:2181/mesos>/etc/mesos/zk [root@slave-1~]#echo192.168.0.239|sudotee/etc/mesos-slave/hostname [root@slave-1~]#echo'docker,mesos'>/etc/mesos-slave/containerizers 启动mesos-slave [root@slave-1~]#systemctlstartmesos-slave&&systemctlenablemesos-slave [root@slave-1~]#systemctldisablemesos-master 启动Consul-server [root@slave-1~]#dockerrun-d--name=consul--net=hostgliderlabs/consul-server-bootstrap-bind=192.168.0.239 NOTE:一个节点启动就行,它会自己把自己选为leader 测试consul-server [root@slave-1~]#curl192.168.0.239:8500/v1/catalog/services {"consul":[]} NOTE:也可以浏览器访问:http://192.168.0.239:8500/ui/ 启动Registrator [root@consul-1~]#dockerrun-d\ --name=registrator\ --net=host\ --volume=/var/run/docker.sock:/tmp/docker.sock\ gliderlabs/registrator:latest\ consul://192.168.0.239:8500 测试Registrator是否跟consul结合把服务自动注册到里面,启动一个redis容器测试 [root@consul-1~]#dockerrun-d-P--name=redisredis [root@consul-1~]#curl192.168.0.239:8500/v1/catalog/services {"consul":[],"redis":[]} consul现在有个服务叫做redis,我们能看到更多关于这个服务的,比如端口、IP [root@consul-1~]#curl$(boot2dockerip):8500/v1/catalog/service/redis[{"Node":"boot2docker","Address":"10.0.2.15","ServiceID":"boot2docker:redis:6379","ServiceName":"redis","ServiceTags":null,"ServiceAddress":"","ServicePort":32768}] 所有slave的容器注册信息都可以在consul中看到 也可以用DNS API测试 [root@slave-1~]#dig@127.0.0.1-p8600redis.service.consul ;<<>>DiG9.9.4-RedHat-9.9.4-18.el7<<>>@127.0.0.1-p8600redis.service.consul ;(1serverfound) ;;globaloptions:+cmd ;;Gotanswer: ;;->>HEADER<<-opcode:QUERY,status:NOERROR,id:937 ;;flags:qraard;QUERY:1,ANSWER:1,AUTHORITY:0,ADDITIONAL:0 ;;WARNING:recursionrequestedbutnotavailable ;;QUESTIONSECTION: ;redis.service.consul. IN A ;;ANSWERSECTION: redis.service.consul. 0 IN A 192.168.0.239 ;;Querytime:1msec ;;SERVER:127.0.0.1#8600(127.0.0.1) ;;WHEN:WedMar3012:43:34CST2016 ;;MSGSIZErcvd:74 参考文章: ·https://github.com/sekka1/mesosphere-docker ·http://gliderlabs.com/registrator/latest/user/quickstart/

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册