健康检查是需要每个应用运行监控检查任务的。
1.默认的健康检查是延迟才能让mesos知道任务的状态是否健康。
2.marathon提供一个任务资源的健康成员访问的REST API接口。
如果HTTP的响应在超时时间timeoutSeconds内返回代码在200到399之间,那么健康检查认为是健康的。如果任务失败连续超过健康检查规定的maxConsecutiveFailures次数,这个任务将会被kill掉。
实例:
{
"path": "/api/health",
"portIndex": 0,
"protocol": "HTTP",
"gracePeriodSeconds": 300,
"intervalSeconds": 60,
"timeoutSeconds": 20,
"maxConsecutiveFailures": 3,
"ignoreHttp1xx": false
}
或者
{
"portIndex": 0,
"protocol": "TCP",
"gracePeriodSeconds": 300,
"intervalSeconds": 60,
"timeoutSeconds": 20,
"maxConsecutiveFailures":
或者
注意:在和Docker化的任务组合中,命令健康检查mesos 0.23.0和0.24.0版本中有bug。在0.23.1和0.24.1中已经得到修复。
想要了解更多,请查看https://issues.apache.org/jira/browse/MESOS-3136。
{
"protocol": "COMMAND",
"command": { "value": "curl -f -X GET http://$HOST:$PORT0/health" },
"gracePeriodSeconds": 300,
"intervalSeconds": 60,
"timeoutSeconds": 20,
"maxConsecutiveFailures": 3
}
健康检查配置项
首先你需要描述健康检查的协议:
protocol(可选,默认为HTTP):请求的协议有三种,分别是HTTP/TCP/COMMAND
HTTP/TCP健康检查被marathon执行,因此当前marathon leader必须是可以访问的。COMMAND健康检查是通过在代理服务上的mesos运行一个类似的任务在本地执行的。
下面的配置项适合所有协议:
gracePeriodSeconds(可选,默认为300):健康检查失败在多少秒内被忽略,或者直到任务状态变成健康。
intervalSeconds(可选,默认60):健康检查间隔时间
maxConsecutiveFailures(可选,默认3):健康检查连续失败3次后,不健康的任务会被kill。如果这个值是0,即使健康检查失败,任务也不好被删除。
timeoutSeconds(可选,默认20):健康检查请求没有会的响应的时限。
对TCP/HTTP健康检查,port和portIndex也许会使用到。如果没有提供,portIndex会被设定。如果提供了port,它会优先覆盖所有的portIndex选项。
portIndex(可选,默认为0):这个应用的ports或portDefinitions数组的索引。所以应用可能会使用随机端口,例如[0,0,0],任务可能会使用$PORT1这个环境变量。
port(可选,没有默认值):健康检查额端口号。
下面的配置只适用于HTTP健康检查:
path(可选,默认为/):任务暴露一个终端点用于健康检查。例如:/path/to/health
ignoreHttp1xx(可选,默认为false):忽略HTTP状态为100到199的信息。如果这个HTTP健康检查返回这个状态的信息,结果被丢弃和任务的健康状态保持不变。
健康生命周期
应用的健康生命周期如下图所示。
在图中:
i表示请求实例数
r表示运行实例数
h表示健康实例数
这里写图片描述
http://blog.csdn.net/zhuchuangang/article/details/51120177
相关推荐
通过Marathon,你可以编写应用程序定义(通常是一个JSON文件),描述应用的容器化、资源需求、健康检查等信息。 **Shell**在这里是指使用命令行界面(CLI)与Marathon进行交互的方式。用户可以通过Mesosphere提供的...
gem install marathon-template修改/etc/haproxy/haproxy.cfg-马拉松模板将清除现有的haproxy.cfg文件/ etc / crontab-马拉松模板将每分钟追加一个cron作业以执行马拉松模板,可以在/etc/haproxy.yaml中设置播放...
特征无状态设计:不直接依赖任何第三方状态存储(如ZooKeeper或etcd)(通过Marathon除外) 幂等和确定性:水平缩放高度可扩展:每个实例,多个实例提供容错和更高的吞吐量通过进行实时LB更新支持马拉松健康检查多...
请注意,此仓库中的脚本主要用于参考和启发 :slightly_smiling_face: 有关Marathon及其安装方法的更多信息,。范例清单在文件夹中所有文件的名称后添加一个后缀。 从当前文件夹中的所有图像生成Xcode资产目录。将...
这是一个Python库,用于通过Marathon的与服务器进行。 兼容性 对于Marathon 1.9.x和1.10.x,至少使用0.13.0 对于Marathon 1.6.x,至少使用0.10.0 对于马拉松1.4.1,至少使用0.8.13 对于马拉松1.1.1,至少使用...
您在Marathon中的应用的名称。 uri :必填。 您希望部署到的Marathon实例的URI。 basic_auth :可选。 如果您正在使用HTTP基本身份验证来保护您的Marathon实例,则使用此属性。 注意到user_name和password api_...
marathon-ruby是 Marathon API 的 Ruby 客户端。 到目前为止,它还没有完成,但包括启动/更新/删除应用程序的基本功能。 安装 将此行添加到应用程序的 Gemfile 中: gem 'marathon-ruby' 然后执行: $ bundle ...
### Marathon及Marathon ITE 使用指南知识点详述 #### 关于Marathon及Marathon ITE - **Marathon**:这是专为Java/Swing应用程序设计的一款顶级开源自动化测试工具。自2006年起,由Jalian Systems公司进行维护、...
马拉松UI项目状态以下消息已发布在网上论坛网站上: 亲爱的马拉松社区, 我们想为您提供有关Marathon UI当前状态的最新信息,并邀请您讨论未来的发展。 您可能已经注意到,由于我们已经花费了大部分时间来开发用于DC...
马拉松-cli 在 Marathon 中管理应用程序和组的 golang cli ##用法 COMMANDS: infoGets information about the marathon cluster leaderGets the current leader rmleaderForces current leader to abdicate ...
其中,Marathon的健康检查机制可以用来监控运行中的应用,确保其健康运行。 Marathon之高可用篇讲述了如何设置Marathon的高可用性,以确保集群的稳定和连续性。 Marathon之SSL与基本认证篇则指导如何使用SSL和启用...
完成后,打开您的项目文件 ( ~/.marathon ),并添加您想要的任何项目。 例如,以下项目文件: { "myawesomeapp": 3000 } 将设置http://myawesomeapp.dev指向http://localhost:3000 基本上就是这样。
马拉松清漆这是从 Mesos Marathon API 创建 Varnish 配置的示例。 http://localhost:8080/v2/tasks输出将输出如下内容: { "tasks": [ { "appId": "/foo", "id": "foo.4cef049d-643e-11e4-bdcd-9cb65491f714", "host...
总的来说,"marathon_record.rar"中的"marathon_record"文件是一个实用工具,它结合了编程技术(如用户输入处理、数学运算和错误处理)、马拉松运动的专业知识以及潜在的开源精神,为跑者提供了便捷的速度和配速计算...
- **健康检查**:集成HAProxy的健康检查机制,确保只有健康的实例接收流量。 - **多模式支持**:提供轮询、最少连接、源IP哈希等多种负载均衡策略。 - **SSL/TLS终止**:支持在负载均衡器层面进行SSL/TLS证书管理...
5. **健康检查**:内置健康检查机制,监控应用实例的运行状况,并在必要时重启故障实例。 6. **RESTful API**:使用 JSON 和 HTTP/HTTPS 提供强大的 API,方便集成到自动化部署和运维流程中。 Marathon 架构: 1. *...
"marathon_3:免费的智力马拉松HTML-学院"是一个在线学习平台,专注于HTML(超文本标记语言)的教育。这个资源可能是为了帮助学生或初学者掌握网页开发的基础,通过一系列的学习材料和实践项目,提升他们的智力技能。...
9. **错误处理**:通过try/catch、Promise的catch方法以及全局异常处理,确保程序在遇到问题时能优雅地处理错误。 10. **代码规范和格式化**:使用ESLint和Prettier等工具,保持代码风格一致,提高团队协作效率。 ...
一旦你的 vagrant 机器在安装了 mesos 和 marathon 的情况下运行,你可以继续以下部分。 构建图像 为了能够使用 docker 执行示例,目录docker-image包含构建和创建 docker 实例所需的步骤。 运行图像 为了在马拉松...
4. **健康检查**:通过集成健康检查机制,Marathon能确保应用实例的可用性,如果某个实例未通过健康检查,Marathon会自动替换。 5. **持久化数据**:Marathon支持持久化数据存储,即使应用实例重启,数据也不会丢失...