docker 集群管理实战mesos+zookeeper+marathon(三)
接上文mesos+zookeeper管理docker集群,已安装并成功启动mesos master和mesos slave。
集群管理实战mesos+zookeeper+marathon(二)
这个教程主要演示部署和使用marathon
一、Marathon安装与配置
1.1 Marathon是什么
Marathon按照官方的说法是基于Mesos的私有PaaS,它实现了Mesos的Framework。Marathon实现了服务发现和负载平衡、为部署提供REST API服务、授权和SSL、配置约束等功能。Marathon支持通过Shell命令和Docker部署应用。提供Web界面、支持cpu/mem、实例数等参数设置,支持单应用的Scale,但不支持复杂的集群定义。Marathon能够支持运行长服务,比如Web应用等。Marathon能够原样运行任何Linux二进制发布版本,比如Tomcat Play等。
1.2 Mesos和Marathon的关系
如果将Mesos类比为操作系统的内核,负责资源调度。则Marathon可以类比为服务管理系统,比如init,systemd或upstart等系统,用来管理应用的状态信息。Marathon将应用程序部署为长时间运行的Mesos任务。
1.3 下载和解压marathon
1.4 启动marathon
./start --hostname 192.168.23.101 --master zk://192.168.23.101:2181,192.168.23.102:2181,192.168.23.103:2181/mesos --http_address 0.0.0.0
1.5 查看marathon的运行状态
1.6 刷新mesos主页,查看marathon状态
点击Frameworks
点击host下面的IP地址
至此,marathon成功部署,可以创建应用了
二 使用marathon创建测试任务
2.1 点击首页create按钮,创建一个测试任务echo “hello world”
2.2 创建完成之后可以在aplications页面看到该任务
2.3 此时marthon会在mesos中注册,可以在mesos web的framework页面中看到注册信息
在mesos web首页中可以看到测试任务在不停的执行,此实验共两个slave节点,这个任务会随机分配到两个节点上面执行
2.4 在slave节点使用命令查看测试任务
这个路径非常long。。。
三 使用marathon web创建容器
3.1 创建nginx-web实例,使用nginx镜像
3.2 查看运行状态
点击查看实例详情,容器port是创建的时候手动设置的,hostport是自动分配的
3.3 登录slave1节点查看
3.4 浏览器访问这个容器
3.5 扩展实例数量
3.6 查看实例扩展情况
实例被随机分配到两个计算节点
3.7 down掉其中一个节点,再查看实例情况
模拟当slave1节点故障时,slave1节点上面的实例都会在其他节点被创建。
至此,部署Marathon+mesos管理docker集群教程已经完成,本教程针对教学环境,生产环境还需要考虑更多问题,如系统及网络安全问题,日志管理问题,平台监控等问题。
希望对您有用,有不对的地方希望不吝赐教,欢迎在评论区留言,分享你的看法。