mesos上运行docker registry

环境准备,请参考mesosphere/marathon/docker安装配置

1.marathon服务编排

下面为marathon服务编排配置:

{
    "id":"registry",
    "cpus":1,
    "mem":256,
    "instances":1,
    "container":{
        "type":"DOCKER",
        "docker":{
            "network":"BRIDGE",
            "image":"daocloud.io/library/registry:0.9.1",
            "portMappings":[
                {
                    "containerPort":5000,
                    "hostPort": 31000,
                    "servicePort":0,
                    "protocol":"tcp",
                    "name":"http"
                }
            ]
        },
        "volumes":[
            {
                "containerPath":"/opt/docker-image",
                "hostPath":"/home/zcg/data/registry",
                "mode":"RW"
            }
        ]
    },
    "env":{
        "STORAGE_PATH":"/opt/docker-image"
    },
    "constraints":[
        [
            "hostname",
            "CLUSTER",
            "172.16.120.136"
        ]
    ],
    "healthChecks":[
        {
            "protocol":"HTTP",
            "path":"/",
            "portIndex":0,
            "gracePeriodSeconds":300,
            "intervalSeconds":60,
            "timeoutSeconds":20,
            "maxConsecutiveFailures":3
        }
    ]
}

2.配置详解

2.1 端口号

 "portMappings":[
                {
                    "containerPort":5000,
                    "hostPort": 31000,
                    "servicePort":0,
                    "protocol":"tcp",
                    "name":"http"
                }
            ]

containerPort:容器内部端口号,设置为0表示随机分配
hostPort:主机端口号,设置为0表示随机分配,mesos slave启动时默认预留了端口号31000~32000,如果设置其他端口号mesos不会分配资源,mesos slave启动可以配置预留端口号。

有关端口号的其他内容请参考marathon参考(11):ports端口设置

2.2 约束

"constraints":[
        [
            "hostname",
            "CLUSTER",
            "172.16.120.136"
        ]
    ]

上面配置的含义是让docker容器运行在IP为172.16.120.136的机器上。

有关约束的更多内容参考marathon参考(6): 约束Constraints

2.3 健康检查

 "healthChecks":[
        {
            "protocol":"HTTP",
            "path":"/",
            "portIndex":0,
            "gracePeriodSeconds":300,
            "intervalSeconds":60,
            "timeoutSeconds":20,
            "maxConsecutiveFailures":3
        }
    ]

上面配置的含义上使用HTTP协议,端口号为ports中定义的第一端口,访问路径是根目录,检查应用是否健康。

有关健康检查的更多内容参考marathon参考(9):健康检查

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章