zoukankan      html  css  js  c++  java
  • mesos概览

    一. mesos架构组成

    1. mesos的顶层概念是framework,每个framework就是一个应用。framework有下面2邠组成
      (1)master上的scheduler:注册器,记录资源分配
      (2)agent上的executor:

    2. Resource Offer架构图:
      此处输入图片的描述
      (1)agent1向master搞搞自己有4CPU和4GB内存空闲,master调用allocation policy模块,告知framework1应该被分配的所有资源
      (2)master发送一个resource offer给framework1,这个resource offer给出了agent1上可用的资源
      (3)framework的schedule回应master,这两个任务分别在agent1上分配的资源(2cpu1gb,1cpu2gb)
      (4)master向agent发送开启任务的命令,并声明给这2个任务分配的资源。剩余的1cpu1gb内存可以分配给framework2

    3. agent恢复
      (1)当mesos-agen进程被杀死后,所有被他管理的executors/tasks也将被杀死
      (2)但是如果一个framework开启了checkpointing,则属于这个framework的executors会自动连接到新的mesos-agen
      (3)重连配置:
      agent重连模式配置

    4. mesos配置项
      mesos配置项

    二. Mesos Containerizer(容器化)

    1. 配置agent

      sudo mesos-agent 
        --containerizers=mesos 
        --image_providers=appc,docker 
        --isolation=filesystem/linux,docker/runtime
      

    (1)--image_providers:container images的类型
    (2)--isolation:隔离器,filesystem/linux:文件系统root权限,docker/runtime:docker运行时

    1. Test it Out!
      (1)启动master
      $ sudo mesos-master --work_dir=/tmp/mesos/master  --hostname=cloud.zetyun.com  
      

    (2)启动agent

    ```shell
    $ sudo GLOG_v=1 mesos-agent 
      --master=<MASTER_IP>:5050 
      --containerizers=mesos,docker 
      --isolation=docker/runtime,filesystem/linux 
      --work_dir=/tmp/mesos/agent 
      --image_providers=docker 
      --executor_environment_variables="{}"
      --executor_registration_timeout=60mins --resources='ports:[40001-44000]'
    ```
    

    (3)用mesos-execute启动docker的container

    ```shell
    # shell=fasle: 使用docker image的默认entrypoint和cmd
    $ sudo bin/mesos-execute 
      --master=<MASTER_IP>:5050 
      --name=test 
      --docker_image=library/redis 
      --shell=false
      
      
    # 验证:redis-client
    $ sudo docker run -ti --net=host redis redis-cli
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379>
    ```
    
    1. Docker Support and Current Limitations
    2. 用docker作为任务镜像的设置方法
      (1)启动命令中加入docker参数:mesos-agent --containerizers=docker,mesos
      (2)每个agent节点都要装有docker cli

    三. Mesos master的高可用

    1. 配置
      (1)启动zookeeper集群
      (2)mesos-master开启参数:--zk=zk://host1:port1,host2:port2,.../path
      (3)mesos-agent开启参数 : --master=zk://host1:port1,host2:port2,.../path
  • 相关阅读:
    Linux Shell脚本详细教程
    linux下错误代码E212: Can't open file for writing
    github仓库的基本使用-创建、上传文件、删除
    -bash: ifconfig: command not found解决办法
    Xshell能ping通但连不上CentOS 7
    devtools和vuex mutations
    Google Chrome谷歌浏览器安装devtools
    Vuex状态管理模式
    vue Promise all
    vue Promise链式调用
  • 原文地址:https://www.cnblogs.com/moonlord/p/6672346.html
Copyright © 2011-2022 走看看