• devops之 gitlab-ci + mesos + docker + marathon 持续发布②安装marathon


    devops之 gitlab-ci + mesos + docker + marathon 持续发布②安装marathon

    安装marathon的前提是安装部署好了mesos,在其中一个mesos节点安装即可

    # wget http://downloads.mesosphere.com/marathon/v1.5.1/marathon-1.5.1.tgz
    tar xf marathon-1.5.1.tgz -C /usr/local
    mv marathon-1.5.0-96-gf84298d marathon-1.5.1
    ln -s marathon-1.5.1 marathon

    # 启动marathon

    [root@ws-yt-server01-standby:/usr/local/marathon]# MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so /usr/local/marathon/bin/marathon --master zk://192.168.254.161:2181,192.168.254.168:2181,192.168.254.185:2181/mesos --zk zk://192.168.254.161:2181,192.168.254.168:2181,192.168.254.185:2181/marathon

    通过命令行创建应用

    [root@ws-yt-server01-standby:~]# cat ch1.json 
    {
        "id": "basic-0", 
        "cmd": "while [ true ] ; do echo 'Hello Marathon' ; sleep 5 ; done",
        "cpus": 0.1,
        "mem": 10.0,
        "instances": 1
    }
    [root@ws-yt-server01-standby:~]# curl -X POST http://192.168.254.161:8080/v2/apps -d @ch1.json -H "Content-type: application/json"

    通过python测试app状态和创建容器,创建docker类型的app

    # _*_ coding:utf-8 _*_
    # __author__ == 'jack'
    # __date__ == '2021-04-08 3:54 PM'
    import requests
    from flask import json
    
    
    headers={'Content-type':'application/json'}
    
    
    class MarathonApi():
    
        def test_ping(self):
            url = "http://192.168.254.161:8080/v2/info"
            r = requests.get(url, headers=headers)
    
            print(r.status_code)
            print(r.json())
    
    
        def test_create_docker_app(self):
            url = "http://192.168.254.161:8080/v2/apps"
    
            app={
                "id": "ch2",
                "cmd": "python3 -m http.server 8080",
                "cpus": 0.5,
                "mem": 32.0,
                "networks": [ {"mode": "container/bridge" }],
                "container": {
                    "type":"DOCKER",
                    "docker":{ "image": "python:3" },
                    "portMappings": [{"containerPort": 8080, "hostPort": 0 }]
                }
            }
    
            r = requests.post(url, headers=headers,json=app)
            print(r.status_code)
            print(json.dumps(r.json(), indent=4))
    
        def test_create_docker_app_v1(self):
            url = "http://192.168.254.161:8080/v2/apps"
    
            app={
                "id": "ch4",
                "cmd": "python app.py",
                "cpus": 0.5,
                "mem": 32.0,
                "networks": [ {"mode": "container/bridge" }],
                # "uris": [
                #     "http://192.168.254.161/db-harbor-admin.tar.gz"
                # ],
                "container": {
                    "type":"DOCKER",
    
                    "docker":{ "image": "192.168.254.161/mesos/imooc_marathon:v1.0.1" },
                    # "docker":{ "image": "192.168.254.161:5000/imooc_marathon:v1.0.6" },     # 不带验证的docker私有仓库
                    "portMappings": [{"containerPort": 5080, "hostPort": 0 }]
                },
                "uris": [
                    "http://192.168.254.161/db-harbor-admin.tar.gz"
                ]
            }
    
            r = requests.post(url, headers=headers,json=app)
            print(r.status_code)
            print(json.dumps(r.json(), indent=4))
    
    
    if __name__ == '__main__':
        # MarathonApi().test_ping()
        # MarathonApi().test_create_docker_app()
        MarathonApi().test_create_docker_app_v1()

    可以看到创建的资源

  • 相关阅读:
    Delphi实战中讲解FormCreate,FormShow,FormActivate
    delphi Try except on e:Exception do
    Delphi处理数据网格DBGrid的编辑框 获取还没有提交到数据集的字段文本
    delphi dbgrid中如何自动生成序号
    DBDateTimePicker;
    Delphi控件开发浅入深出(八)
    delphi中日期类型TDateTime使用总结
    在DBGrid录数据时,如何判断光标位置是在数据的最左或最右,如果是最左或最右则在按左右光标键时光标跳到上一格或下一格,如果是在数据中
    请问如何按Enter键让DBGrid的光标向右移以及换行?(0分)
    tdbgrid中用enter仿真tab键盘_delphi教程
  • 原文地址:https://www.cnblogs.com/reblue520/p/14667277.html
Copyright © 2020-2023  润新知