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):健康檢查

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