设为首页 收藏本站
查看: 713|回复: 0

[经验分享] zookeeper+mesos+docker+swarm

[复制链接]

尚未签到

发表于 2018-5-29 09:17:15 | 显示全部楼层 |阅读模式
  zookeeper 集群安装
  1、下载
  wget http://mirrors.cnnic.cn/apache/zookeeper/stable/zookeeper-3.4.8.tar.gz
  

  2、解压
  mkdir /usr/local/zookeeper && tar zxvf zookeeper-3.4.8.tar.gz && mv zookeeper-3.4.8/* /usr/local/zookeeper ** rm -rf zookeeper-3.4.8
  

  3、创建配置文件
  Zookeeper文件配置详解
  dataDir:数据目录
  dataLogDir:日志目录
  clientPort:客户端连接端口
  tickTime:Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
  initLimit:Zookeeper的Leader 接受客户端(Follower)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒
  syncLimit:表示 Leader 与 Follower 之间发送消息时请求和应答时间长度,最长不能超过多少个tickTime 的时间长度,总的时间长度就是 2*2000=4 秒。
  server.A=B:C:D:
  A 是一个数字,表示这个是第几号服务器;
  B 是这个服务器的 ip 地址;
  C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;
  D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口
  

  

  cd /usr/local/zookeeper/conf
  

  vim /usr/local/zookeeper/conf/zk1.cfg
  

  tickTime=2000
  initLimit=10
  syncLimit=5
  dataDir=/data/zookeeper/zk1/data
  dataLogDir=/data/zookeeper/zk1/logs
  clientPort=2181
  server.1=10.10.16.194:3181:4181
  server.2=10.10.16.194:3182:4182
  server.3=10.10.16.194:3183:4183
  

  echo "1" >/data/zookeeper/zk1/data/myid
  

  

  

  vim /usr/local/zookeeper/conf/zk2.cfg
  

  tickTime=2000
  initLimit=10
  syncLimit=5
  dataDir=/data/zookeeper/zk2/data
  dataLogDir=/data/zookeeper/zk2/logs
  clientPort=2182
  server.1=10.10.16.194:3181:4181
  server.2=10.10.16.194:3182:4182
  server.3=10.10.16.194:3183:4183
  

  echo "2" >/data/zookeeper/zk2/data/myid
  

  

  

  vim /usr/local/zookeeper/conf/zk3.cfg
  

  tickTime=2000
  initLimit=10
  syncLimit=5
  dataDir=/data/zookeeper/zk3/data
  dataLogDir=/data/zookeeper/zk3/logs
  clientPort=2183
  server.1=10.10.16.194:3181:4181
  server.2=10.10.16.194:3182:4182
  server.3=10.10.16.194:3183:4183
  

  echo "3" >/data/zookeeper/zk3/data/myid
  

  

  4、启动Zookeeper
  /usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zk1.cfg
  /usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zk2.cfg
  /usr/local/zookeeper/bin/zkServer.sh start /usr/local/zookeeper/conf/zk3.cfg
  

  5、查看Zookeeper状态
  /usr/local/zookeeper/bin/zkServer.sh status /usr/local/zookeeper/conf/zk1.cfg
  /usr/local/zookeeper/bin/zkServer.sh status /usr/local/zookeeper/conf/zk2.cfg
  /usr/local/zookeeper/bin/zkServer.sh status /usr/local/zookeeper/conf/zk3.cfg
  

  

  

  

  Mesos集群部署
  1、安装Mesosphere仓库到本地
  rpm -Uvh http://repos.mesosphere.com/el/7/noarch/RPMS/mesosphere-el-repo-7-1.noarch.rpm
  

  2、Mesos Master部署
  yum -y install mesos
  

  配置Mesos连接Zookeeper文件
  vim /etc/mesos/zk
  zk://10.10.16.194:2181,10.10.16.194:2182,10.10.16.194:2183/mesos
  systemctl start mesos-master mesos-slave
  

  

  3、Mesos Slave部署
  yum -y install mesos
  

  echo 10.10.16.193 > /etc/mesos-slave/hostname
  echo "mesos,docker" > /etc/mesos-slave/containerizers
  

  vim /etc/mesos/zk
  zk://10.10.16.194:2181,10.10.16.194:2182,10.10.16.194:2183/mesos
  

  systemctl start mesos-slave
  修改/etc/mesos-slave/hostname后无法启动问题,删除rm -rf /var/lib/mesos/meta/*后再重启即可
  

  

  

  Dokcer  swarm 部署
  1、下载swarm
  docker pull swarm
  2、启动swarm
  docker run -d --net=host swarm --debug manage -c mesos-experimental --cluster-opt mesos.address=10.10.16.194 --cluster-opt mesos.tasktimeout=100s  --cluster-opt mesos.user=root --cluster-opt mesos.offertimeout=10m --cluster-opt mesos.port=3375 --cluster-opt mesos.enablerevocable=true --host=0.0.0.0:4375 zk://10.10.16.194:2181,10.10.16.194:2182,10.10.16.194:2183/mesos
  3、运行容器
  docker -H 10.10.16.194:4375 run -d -m 512m -e constraint:res-type==~regular  docker.16qian.cn/niu-ding-feng/product-service-web_prd_1.0.1
  

  

  CONSUL安装
  1、下载CONSUL以及web ui
  https://www.consul.io/downloads.html
  

  2、解压后启动服务
  在server服务器执行启动命令
  ./consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -node=n1 -bind=10.10.16.194 -ui-dir /root/web_ui -dc=dc1 -client=10.10.16.194 &
  ./consul agent -server -bootstrap-expect 2 -data-dir /tmp/consul -node=n2 -bind=10.10.16.193 -ui-dir -dc=dc1 &
  在10.10.16.193服务器执行以下命令
  ./consul join 10.10.16.194
  

  在clent服务器执行以下命令
  ./consul agent  -data-dir /tmp/consul -node=n3 -bind=10.10.16.190  -dc=dc1 &
  ./consul join 10.10.16.194
  

  上面几步就完成了初始化Server节点,以后通过-rejoin参数启动,可以重新加入集群。
  ./consul agent  -data-dir /tmp/consul -node=n3 -bind=10.10.16.190  -dc=dc1 -rejoin &
  

  3、查看信息
  ./consul members
  ./consul info
  

  4、查看节点
  curl 127.0.0.1:8500/v1/catalog/nodes
  

  5、使用DNS协议查看节点信息
  dig @127.0.0.1 -p 8600 10.10.16.190
  

  6、注册服务
  curl -X PUT -d '{"Datacenter": "dc1", "Node": "mysql-1", "Address":"mysql-1.node.consul","Service": {"Service": "mysql", "tags": ["master","v1"], "Port": 3306}}' http://127.0.0.1:8500/v1/catalog/register
  curl -X PUT -d '{"Datacenter": "dc1", "Node": "mysql-2", "Address":"mysql-2.node.consul","Service": {"Service": "mysql", "tags": ["slave","v1"],"Port": 3306}}' http://127.0.0.1:8500/v1/catalog/register
  

  7、查看服务
  curl http://127.0.0.1:8500/v1/catalog/service/mysql
  dig @127.0.0.1 -p 8600 10.10.16.194 SRV
  

  删除服务
  curl -X PUT -d '{"Node": "mysql-1"}' http://127.0.0.1:8500/v1/catalog/deregister
  curl -X PUT -d '{"Node": "mysql-2"}' http://127.0.0.1:8500/v1/catalog/deregister
  

  8、 K/V存储
  consul还提供了键/值存储的功能。
  如 查询 所有K/V
  curl -v http://localhost:8500/v1/kv/?recurse
  

  保存键为web/key2, flags 为42, 值为true的记录。
  curl -X PUT -d 'test' http://localhost:8500/v1/kv/web/key2?flags=42
  true
  

  删除记录:
  curl -X DELETE http://localhost:8500/v1/kv/web/sub?recurse
  

  更新值:
  curl -X PUT -d 'newval' http://localhost:8500/v1/kv/web/key1?cas=97
  true
  

  更新index:
  curl "http://localhost:8500/v1/kv/web/key2?index=101&wait=5s"
  

  结果:[{"CreateIndex":98,"ModifyIndex":101,"Key":"web/key2","Flags":42,"Value":"dGVzdA=="}]
  

  

  

  

  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-482405-1-1.html 上篇帖子: Docker系列一之基础快速入门企业实战 下篇帖子: Docker仓库搭建(Registry + Portus)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表