`
m635674608
  • 浏览: 5042270 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

marathon参考(9):健康检查

 
阅读更多

健康检查是需要每个应用运行监控检查任务的。 

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-demo:Marathon 演示资源

    通过Marathon,你可以编写应用程序定义(通常是一个JSON文件),描述应用的容器化、资源需求、健康检查等信息。 **Shell**在这里是指使用命令行界面(CLI)与Marathon进行交互的方式。用户可以通过Mesosphere提供的...

    marathon_template:通过马拉松动态HaProxy

    gem install marathon-template修改/etc/haproxy/haproxy.cfg-马拉松模板将清除现有的haproxy.cfg文件/ etc / crontab-马拉松模板将每分钟追加一个cron作业以执行马拉松模板,可以在/etc/haproxy.yaml中设置播放...

    marathon-lb:Marathon-lb是DCOS的服务发现和负载平衡工具

    特征无状态设计:不直接依赖任何第三方状态存储(如ZooKeeper或etcd)(通过Marathon除外) 幂等和确定性:水平缩放高度可扩展:每个实例,多个实例提供容错和更高的吞吐量通过进行实时LB更新支持马拉松健康检查多...

    Marathon-Examples:可以使用Marathon轻松运行的示例Swift脚本的集合

    请注意,此仓库中的脚本主要用于参考和启发 :slightly_smiling_face: 有关Marathon及其安装方法的更多信息,。范例清单在文件夹中所有文件的名称后添加一个后缀。 从当前文件夹中的所有图像生成Xcode资产目录。将...

    marathon-python:Mesos Marathon的REST API的Python客户端库

    这是一个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-resource:用于将应用程序部署到Marathon的Concourse资源

    您在Marathon中的应用的名称。 uri :必填。 您希望部署到的Marathon实例的URI。 basic_auth :可选。 如果您正在使用HTTP基本身份验证来保护您的Marathon实例,则使用此属性。 注意到user_name和password api_...

    marathon-ruby:Marathon 的 Ruby 客户端

    marathon-ruby是 Marathon API 的 Ruby 客户端。 到目前为止,它还没有完成,但包括启动/更新/删除应用程序的基本功能。 安装 将此行添加到应用程序的 Gemfile 中: gem 'marathon-ruby' 然后执行: $ bundle ...

    Marathon+User+Guide.pdf

    ### Marathon及Marathon ITE 使用指南知识点详述 #### 关于Marathon及Marathon ITE - **Marathon**:这是专为Java/Swing应用程序设计的一款顶级开源自动化测试工具。自2006年起,由Jalian Systems公司进行维护、...

    marathon-ui:马拉松的Web用户界面(https

    马拉松UI项目状态以下消息已发布在网上论坛网站上: 亲爱的马拉松社区, 我们想为您提供有关Marathon UI当前状态的最新信息,并邀请您讨论未来的发展。 您可能已经注意到,由于我们已经花费了大部分时间来开发用于DC...

    marathon-cli:在 Marathon 中管理应用程序和组的 golang cli

    马拉松-cli 在 Marathon 中管理应用程序和组的 golang cli ##用法 COMMANDS: infoGets information about the marathon cluster leaderGets the current leader rmleaderForces current leader to abdicate ...

    DCOS之marathon技术文档

    其中,Marathon的健康检查机制可以用来监控运行中的应用,确保其健康运行。 Marathon之高可用篇讲述了如何设置Marathon的高可用性,以确保集群的稳定和连续性。 Marathon之SSL与基本认证篇则指导如何使用SSL和启用...

    marathon-dns:轻松自定义本地 DNS - 转 localhost

    完成后,打开您的项目文件 ( ~/.marathon ),并添加您想要的任何项目。 例如,以下项目文件: { "myawesomeapp": 3000 } 将设置http://myawesomeapp.dev指向http://localhost:3000 基本上就是这样。

    marathon-varnish:从 Mesos Marathon API 输出创建 Varnish 配置

    马拉松清漆这是从 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_site:www.pudn.com

    总的来说,"marathon_record.rar"中的"marathon_record"文件是一个实用工具,它结合了编程技术(如用户输入处理、数学运算和错误处理)、马拉松运动的专业知识以及潜在的开源精神,为跑者提供了便捷的速度和配速计算...

    marathon-lb-1.4.3.tar.gz

    - **健康检查**:集成HAProxy的健康检查机制,确保只有健康的实例接收流量。 - **多模式支持**:提供轮询、最少连接、源IP哈希等多种负载均衡策略。 - **SSL/TLS终止**:支持在负载均衡器层面进行SSL/TLS证书管理...

    marathon-0.8.2.tgz

    5. **健康检查**:内置健康检查机制,监控应用实例的运行状况,并在必要时重启故障实例。 6. **RESTful API**:使用 JSON 和 HTTP/HTTPS 提供强大的 API,方便集成到自动化部署和运维流程中。 Marathon 架构: 1. *...

    marathon_3:免费的智力马拉松HTML-学院

    "marathon_3:免费的智力马拉松HTML-学院"是一个在线学习平台,专注于HTML(超文本标记语言)的教育。这个资源可能是为了帮助学生或初学者掌握网页开发的基础,通过一系列的学习材料和实践项目,提升他们的智力技能。...

    Marathon-js:技术测试(Splio)

    9. **错误处理**:通过try/catch、Promise的catch方法以及全局异常处理,确保程序在遇到问题时能优雅地处理错误。 10. **代码规范和格式化**:使用ESLint和Prettier等工具,保持代码风格一致,提高团队协作效率。 ...

    mesos-marathon-demo:Mesosmarathon + 码头工人

    一旦你的 vagrant 机器在安装了 mesos 和 marathon 的情况下运行,你可以继续以下部分。 构建图像 为了能够使用 docker 执行示例,目录docker-image包含构建和创建 docker 实例所需的步骤。 运行图像 为了在马拉松...

    Python库 | marathon-0.8.11.tar.gz

    4. **健康检查**:通过集成健康检查机制,Marathon能确保应用实例的可用性,如果某个实例未通过健康检查,Marathon会自动替换。 5. **持久化数据**:Marathon支持持久化数据存储,即使应用实例重启,数据也不会丢失...

Global site tag (gtag.js) - Google Analytics