marathon 测试
marathon 初步使用
关闭selinux setenforce 0
Marathon之应用篇
先来了解一下 Marathon 是怎么布署decker的
json
shell.json
{ "id": "shell", "cmd": "while [ true ] ; do echo 'Hello Marathon' ; sleep 5 ; done", "cpus": 0.1, "mem": 10.0, "instances":
}
curl http://10.134.29.134/v2/apps -d @shell.json -H "Content-type: application/json"
#Mesos底层执行器进行执行,通过/bin/bash -c ${cmd}
marathon管理界面 简单了解
App
代表一个工作实类型,发布了一个tocmat网站
task
代表这个网在在几个容器中运行
# marathon提供app的自动扩展,健康检查以及运行情况的健康,日志管理等功能
# marathon对app的生命周期进行有效的管理
# Scale Application进行快速扩容 task数量?
# 销毁 点击kill & scale即可
# ps命令查看shell所在节点的进程ID lsof查看该进行打开的文件
# 使用 Web-UI创建 应用
# marathon如何应用远程资源
# Mesos fetcher
json文件 格式
{ "id": "shell",
"cmd": "shell/shell.sh",
"cpus": 0.1,
"mem": 10.0,
"instances": 1,
"uris": [
"http://10.128.3.75/shell.zip" ]
}
uris对资源进行定位下载,Marathon支持多种协议类型,种类如下所示:
file:http:https:ftp:ftps:hdfs:s3:s3a:s3n:
uri的值是数组类型,可以支持同时输入多个资源:
{ ... "uris": ["https://github.com/zouyee/repo.zip", "http://10.128.3.75/images/shell.sh", "ftp://10.128.3.75/images/my-other-file.css" ] ...
}
容器运行
json文件 中 container 子对象
"container": {
"type": "DOCKER",
"docker": { "image": "python:3",
"network": "BRIDGE",
"portMappings": [ { "containerPort": 8080, "hostPort": 0 } ]
}
}
post 方式
curl -X POST http://10.134.29.134:8080/v2/apps -d web.json -H "Content-type: application/json"
端口分配
1)container中的portMapping
containerport、
hostport、
serviceport
2) 应用配置的Optional settings中的Ports
3) 实际App中某一Task分配的port(s)
------------------------------------------------------------------------------------------------------------------------------------------------------------------
containerPort:container Port指定在容器内部的端口,它适用于docker的bridge网络做port mapping。
hostPort:host Port指定主机绑定端口,当使用BRIDGE网络,需要指定从主机端口到容器端口的port mapping,当使用HOST网络,请求端口默认为主机端口。
BRIDGE网络:docker应用可以使用BRIDGE网络。在此网络环境中,container port(容器内部端口)对应host port(主机上的端口)。
HOST网络:HOST网络可用于非docker的Marathon应用和docker应用,此模式中,应用直接绑定主机的一或者多个端口。
ports:这个port需要被视作一种资源,在使用HOST网络时,就需要设定。
protocol:协议指定使用的端口(比如tcp、udp)
servicePort:Marathon不绑定此端口,其被用作服务发现。
如果在portMapping中containerPort设为0,它的值将会与hostPort一致,hostPort将随机分配,默认范围在31000-32000之间。
-----------------------------------------------------------
健康检查
健康检查针对的是App下的每一个Task
Task有三种活动状态:健康,非健康和扩展中
开始测试1
目标: 通过http post方式在集群下创建一个最简单的docker容器。
第一步 在marathon 界面端 UI模式下测试,可以成功创建一个容器。
然后切换到 json模式,得到一个json内容如下:
{
"id": "tomcat-test",
"cmd": null,
"cpus": ,
"mem": ,
"disk": ,
"instances": ,
"container": {
"docker": {
"image": "tomcat",
"forcePullImage": false
},
"type": "DOCKER",
"portMappings": [
{
"containerPort": ,
"protocol": "tcp",
"name": "testport",
"labels": null
}
],
"volumes": []
},
"networks": [
{
"mode": "container/bridge"
}
],
"env": {},
"labels": {},
"healthChecks": []
}
在局域网另一台linux 192.168.1.19 下创建测试文件 /test-marathon/create.tomcat.json
json内容就是上面的配置
在 192.168.1.19机器上测试用post方式创建镜像:
curl -X POST http://192.168.1.161:8080/v2/apps -d@/test-marathon/create.tomcat.json -H "Content-type:application/json"
在UI 可以看到
tomcat-test 这个APP己成功运行了
ID 192.168.1.151:31199 app被生成在这个节点当中了。
到页面删除这个 app 再重新几次测试 可以看到会分配到
192.168.1.151 192.168.1.152 192.168.1.153 三个中的一个 端口号 31199 是随机分配的 第二步 测试各种端口作用。 目标: 通过布署一个tomcat 来发布一个有内容的app应用,应用内要连接外网的mysql., 并通过web访问应用的主页。 1),准备一个简单的war包。
里面有连接mysql操作,首页连接mysql ,从表里读取一个字段。
然后输出到首页。 2) ,把war包打到tomcat镜像中去。 3),通过 post 发布应用。
marathon 测试的更多相关文章
- Docker云Paas平台部署:Docker+Mesos+Marathon
针对“互联网+”时代的业务增长.变化速度及大规模计算的需求,廉价的.高可扩展的分布式x86集群已成为标准解决方案,如Google已经在几千万台服务器上部署分布式系统.Docker及其相关技术的出现和发 ...
- Docker系列之(二):使用Mesos管理Docker集群(Mesos + Marathon + Chronos + Docker)
1. Mesos简介 1.1 Mesos Apache Mesos 是一个分布式系统的管理软件,对集群的资源进行分配和管理. Mesos主要由以下几部分组成: Master: 管理各Slave节点 S ...
- Mesos+Zookeeper+Marathon+Docker分布式集群管理最佳实践
参考赵班长的unixhot以及马亮blog 笔者QQ:572891887 Linux架构交流群:471443208 1.1Mesos简介 Mesos是Apache下的开源分布式资源管理框架,它被称为分 ...
- 对比剖析Swarm Kubernetes Marathon编排引擎
Docker Native Orchestration 基本结构 Docker Engine 1.12 集成了原生的编排引擎,用以替换了之前独立的Docker Swarm项目.Docker原生集群(S ...
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(2)- 负载均衡marathon-lb
之前介绍了Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)的操作,多余的废话不说了,下面接着说下在该集群环境下的负载均衡marathon-lb的部署过程: 默认情况 ...
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(1)
随着"互联网+"时代的业务增长.变化速度及大规模计算的需求,廉价的.高可扩展的分布式x86集群已成为标准解决方案,如Google已经在几千万台服务器上部署分布式系统.Docker及 ...
- 使用Mesos和Marathon管理Docker集群
分布式系统是难于理解.设计.构建 和管理的,他们将比单个机器成倍还要多的变量引入到设计中,使应用程序的根源问题更难发现.SLA(服务水平协议)是衡量停机和/或性能下降的标准,大多数现代应用程序有一个期 ...
- docker+mesos+marathon
前言 (Core) [root@docker-slave ~]# uname -r 3.10.0-229.4.2.el7.x86_64 [root@docker-slave ~]# uname -m ...
- My First Marathon【我的第一次马拉松】
My First Marathon A month before my first matathon, one of my ankles was injured and this meant not ...
随机推荐
- Andorid Studio中运行模拟器--夜神模拟器
这样可以直接在夜神模拟器上运行app然后在androidstudio上查看log…. 1.下载夜神模拟器 2.修改配置 点击右上角的设置图标,对夜神模拟器的分辨率进行选择,手机版的480×800的就差 ...
- 依赖注入原理---IoC框架
先来讲一讲,一个简单的依赖注入例子. 1. 依赖 如果在 Class A 中,有 Class B 的实例,则称 Class A 对 Class B 有一个依赖.例如下面类 Human 中用到一个 Fa ...
- 蓝桥杯 每周一练 第一周(3n+1问题)
[问题描述] 考虑如下的序列生成算法:从整数 n 开始,如果 n 是偶数,把它除以 2:如果 n 是奇数,把它乘 3 加1. 用新得到的值重复上述步骤,直到 n = 1 时停止.例如,n = 22 时 ...
- bsxfun.h multiple threads backup
https://code.google.com/p/deep-learning-faces/source/browse/trunk/cuda_ut/include/bsxfun.h?r=7&s ...
- Vue(九) 自定义指令
前面介绍了许多 Vue 内置的指令,比如 v-if.v-show等,这些丰富的指令能满足我们绝大部分的业务需求,不过在需要一些特殊功能时,我们仍然希望对 DOM 进行底层的操作,这时就要用到自定义指令 ...
- 跟随我在oracle学习php(8)
JavaScript 是一种专为与网页交互而设计的脚本语言, javascript:特效 表单验证原理:什么时候,找到标签,什么时候,操作标签 使用<script>元素的方式有两种:直接在 ...
- linux下使用命令修改IP地址
使用root用户登录进入Linux,打开进去终端 在终端中输入:vi /etc/sysconfig/network-scripts/ifcfg-eth0 (最后的eth0是网卡名,我的是Auto_et ...
- js--------1.时间
//获取当前时间 yyyy-MM-dd function getNowFormatDate() { var date = new Date(); var seperator1 = "-&qu ...
- raid的一些简单知识
日一.RAID定义RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁 ...
- GPU知识了解
前言 今天在使用阿里云的时候,无意间看到了有GPU服务器,于是对它做了一个大概的了解. 概念 GPU是Graphics Processing Unit的缩写,翻译成中文就是图形处理器.是一种专门在个人 ...