marathon-consul, 桥马拉松信息到 Consul

分享于 

8分钟阅读

GitHub

  繁體 雙語
bridge Marathon information to Consul KV
  • 源代码名称:marathon-consul
  • 源代码网址:http://www.github.com/CiscoCloud/marathon-consul
  • marathon-consul源代码文档
  • marathon-consul源代码下载
  • Git URL:
    git://www.github.com/CiscoCloud/marathon-consul.git
    Git Clone代码到本地:
    git clone http://www.github.com/CiscoCloud/marathon-consul
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/CiscoCloud/marathon-consul
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    马拉松领事

    Build Status

    马拉松到领事桥的元数据发现。

    marathon-consul 获取由马拉松事件总线提供的信息并将它的转发到 consul tree。 启动时,它还将所有来自马拉松的信息同步到 Consul。

    目录

    与其他元数据桥的比较

    haproxy-marathon-bridge

    然而,这个项目有( 在模板中启用元数据用法。)的目标,haproxy-marathon-bridge 使用了而不是事件总线,所以它每分钟只更新一次。 此外,它还可以将所有你可以编写配置文件的文件更新为 haproxy。

    建筑

    
    docker build -t marathon-consul. 
    
    
    
    

    运行

    马拉松领事可以通过马拉松在 Docker 容器中运行。 在consul注册后,你可以使用 .service.consul 来查找它们,或者更改你环境的vaules:

    
    curl -X POST -d @marathon-consul.json -H"Content-Type: application/json" http://marathon.service.consul:8080/v2/apps'
    
    
    
    

    其中 marathon-consul.json 与( 用图像替换图像) 类似:

    
    {
    
    
    "id":"marathon-consul",
    
    
    "args": ["--registry=https://consul.service.consul:8500"],
    
    
    "container": {
    
    
    "type":"DOCKER",
    
    
    "docker": {
    
    
    "image":"{{ marathon_consul_image }}:{{ marathon_consul_image_tag }}",
    
    
    "network":"BRIDGE",
    
    
    "portMappings": [{"containerPort": 4000,"hostPort": 4000,"protocol":"tcp"}]
    
    
     }
    
    
     },
    
    
    "constraints": [["hostname","UNIQUE"]],
    
    
    "ports": [4000],
    
    
    "healthChecks": [{
    
    
    "protocol":"HTTP",
    
    
    "path":"/health",
    
    
    "portIndex": 0
    
    
     }],
    
    
    "instances": 1,
    
    
    "cpus": 0.1,
    
    
    "mem": 128
    
    
    }
    
    
    
    

    你还可以添加选项对进行身份验证。

    如果你的马拉松版本是 0.9.0或者更高版本,则不需要进一步的设置。 马拉松领事将自动检测/v2/events 端点并使用它更新领事。

    如果你的马拉松版本没有事件总线端点,则必须配置事件订阅。 马拉松事件总线应该指向 /events``。 可以使用与这里类似的调用来设置事件订阅:

    
    curl -X POST 'http://marathon.service.consul:8080/v2/eventSubscriptions?callbackUrl=http://marathon-consul.service.consul:4000/events'
    
    
    
    

    用法

    命令行选项

    参数默认说明
    listen:4000接受这里地址的连接
    registryhttp://localhost:8500领事注册表的root 位置
    registry-auth领事注册表的基本认证
    registry-datacenter要在写入中使用的数据中心
    registry-token领事注册表ACL令牌
    registry-noverifyFalse不验证注册表SSL证书
    registry-prefixmarathon发送到注册表的所有值的前缀
    log-levelinfo日志级别:紧急,致命,错误,警告,信息或者调试
    marathon-locationlocalhost:8080马拉松位置( 针对 resyncing )
    marathon-protocolhttp马拉松 prototocol ( http或者 https )
    marathon-username马拉松用户名用于基本认证
    marathon-password基本认证的马拉松密码

    添加新的root 证书颁发机构

    如果在像 Nginx 这样的SSL代理后面运行领事,可能需要将证书添加到容器中的可信存储区,以便避免使用 --registry-noverify。 为此,/usr/local/share/ca-certificates/的卷中添加的任何证书都将被添加到启动时容器中的root 证书。

    端点

    端点描述
    /healthhealthcheck - 返回 OK
    /events如果在事件中设置了所有键,则返回 OK,否则返回错误消息

    键和值

    整个应用程序配置被作为 JSON blob转发给领事。 它可能看起来像这个( 马拉松文档示例):

    
    {
    
    
    "id":"/product/service/my-app",
    
    
    "cmd":"env && sleep 300",
    
    
    "args": ["/bin/sh","-c","env && sleep 300"],
    
    
    "container": {
    
    
    "type":"DOCKER",
    
    
    "docker": {
    
    
    "image":"group/image",
    
    
    "network":"BRIDGE",
    
    
    "portMappings": [
    
    
     {
    
    
    "containerPort": 8080,
    
    
    "hostPort": 0,
    
    
    "servicePort": 9000,
    
    
    "protocol":"tcp"
    
    
     },
    
    
     {
    
    
    "containerPort": 161,
    
    
    "hostPort": 0,
    
    
    "protocol":"udp"
    
    
     }
    
    
     ],
    
    
    "privileged": false,
    
    
    "parameters": [
    
    
     {"key":"a-docker-option","value":"xxx" },
    
    
     {"key":"b-docker-option","value":"yyy" }
    
    
     ]
    
    
     },
    
    
    "volumes": [
    
    
     {
    
    
    "containerPath":"/etc/a",
    
    
    "hostPath":"/var/data/a",
    
    
    "mode":"RO"
    
    
     },
    
    
     {
    
    
    "containerPath":"/etc/b",
    
    
    "hostPath":"/var/data/b",
    
    
    "mode":"RW"
    
    
     }
    
    
     ]
    
    
     },
    
    
    "cpus": 1.5,
    
    
    "mem": 256.0,
    
    
    "env": {
    
    
    "LD_LIBRARY_PATH":"/usr/local/lib/myLib"
    
    
     },
    
    
    "executor":"",
    
    
    "constraints": [
    
    
     ["attribute","OPERATOR","value"]
    
    
     ],
    
    
    "labels": {
    
    
    "environment":"staging"
    
    
     },
    
    
    "healthChecks": [
    
    
     {
    
    
    "protocol":"HTTP",
    
    
    "path":"/health",
    
    
    "gracePeriodSeconds": 3,
    
    
    "intervalSeconds": 10,
    
    
    "portIndex": 0,
    
    
    "timeoutSeconds": 10,
    
    
    "maxConsecutiveFailures": 3
    
    
     },
    
    
     {
    
    
    "protocol":"TCP",
    
    
    "gracePeriodSeconds": 3,
    
    
    "intervalSeconds": 5,
    
    
    "portIndex": 1,
    
    
    "timeoutSeconds": 5,
    
    
    "maxConsecutiveFailures": 3
    
    
     },
    
    
     {
    
    
    "protocol":"COMMAND",
    
    
    "command": {"value":"curl -f -X GET http://$HOST:$PORT0/health" },
    
    
    "maxConsecutiveFailures": 3
    
    
     }
    
    
     ],
    
    
    "instances": 3,
    
    
    "ports": [
    
    
     8080,
    
    
     9000
    
    
     ],
    
    
    "backoffSeconds": 1,
    
    
    "backoffFactor": 1.15,
    
    
    "uris": [
    
    
    "https://raw.github.com/mesosphere/marathon/master/README.md"
    
    
     ],
    
    
    "dependencies": ["/product/db/mongo","/product/db","../../db"],
    
    
    "upgradeStrategy": {
    
    
    "minimumHealthCapacity": 0.5,
    
    
    "maximumOverCapacity": 0.2
    
    
     },
    
    
    "version":"2014-03-01T23:29:30.158Z"
    
    
    }
    
    
    
    

    许可证

    马拉松领事在Apache许可下发布( 请参见许可证


    CONS  INF  info  informat  bri  Bridge  
    相关文章