## Mesos 基本原理與架構
首先,Mesos 自身只是一個資源調度框架,并非一整套完整的應用管理平臺,本身是不能干活的。但是它可以比較容易的跟各種應用管理或者中間件平臺整合,一起工作,提高資源使用效率。
### 架構

master-slave 架構,master 使用 zookeeper 來做 HA。
master 單獨運行在管理節點上,slave 運行在各個計算任務節點上。
各種具體任務的管理平臺,即 framework 跟 master 交互,來申請資源。
### 基本單元
#### master
負責整體的資源調度和邏輯控制。
#### slave
負責匯報本節點上的資源給 master,并負責隔離資源來執行具體的任務。
隔離機制當然就是各種容器機制了。
#### framework
framework 是實際干活的,包括兩個主要組件:
* scheduler:注冊到主節點,等待分配資源;
* executor:在 slave 節點上執行本framework 的任務。
framework 分兩種:一種是對資源需求可以 scale up 或者 down 的(Hadoop、Spark);一種是對資源需求大小是固定的(MPI)。
### 調度
對于一個資源調度框架來說,最核心的就是調度機制,怎么能快速高效的完成對某個 framework 資源的分配(最好是能猜到它的實際需求)。
#### 兩層調度算法:
master 先調度一大塊資源給某個 framework,framework 自己再實現內部的細粒度調度。
調度機制支持插件。默認是 DRF。
#### 基本調度過程
調度通過 offer 方式交互:
* master 提供一個 offer(一組資源) 給 framework;
* framework 可以決定要不要,如果接受的話,返回一個描述,說明自己希望如何使用和分配這些資源(可以說明只希望使用部分資源,則多出來的會被 master 收回);
* master 則根據 framework 的分配情況發送給 slave,以使用 framework 的 executor 來按照分配的資源策略執行任務。
#### 過濾器
framework 可以通過過濾器機制告訴 master 它的資源偏好,比如希望分配過來的 offer 有哪個資源,或者至少有多少資源。
主要是為了加速資源分配的交互過程。
#### 回頭機制
master 可以通過回收計算節點上的任務來動態調整長期任務和短期任務的分布。
### HA
#### master
master 節點存在單點失效問題,所以肯定要上 HA,目前主要是使用 zookpeer 來熱備份。
同時 master 節點可以通過 slave 和 framework 發來的消息重建內部狀態(具體能有多快呢?這里不使用數據庫可能是避免引入復雜度。)。
#### framework 通知
framework 中相關的失效,master 將發給它的 scheduler 來通知。
- 前言
- Docker 簡介
- 什么是 Docker
- 為什么要用 Docker
- 基本概念
- 鏡像
- 容器
- 倉庫
- 安裝
- Ubuntu
- CentOS
- 鏡像
- 獲取鏡像
- 列出
- 創建
- 存出和載入
- 移除
- 實現原理
- 容器
- 啟動
- 守護態運行
- 終止
- 進入容器
- 導出和導入
- 刪除
- 倉庫
- Docker Hub
- 私有倉庫
- 配置文件
- 數據管理
- 數據卷
- 數據卷容器
- 備份、恢復、遷移數據卷
- 使用網絡
- 外部訪問容器
- 容器互聯
- 高級網絡配置
- 快速配置指南
- 配置 DNS
- 容器訪問控制
- 端口映射實現
- 配置 docker0 網橋
- 自定義網橋
- 工具和示例
- 編輯網絡配置文件
- 實例:創建一個點到點連接
- 實戰案例
- 使用 Supervisor 來管理進程
- 創建 tomcat/weblogic 集群
- 多臺物理主機之間的容器互聯
- 標準化開發測試和生產環境
- 安全
- 內核名字空間
- 控制組
- 服務端防護
- 內核能力機制
- 其它安全特性
- 總結
- Dockerfile
- 基本結構
- 指令
- 創建鏡像
- 底層實現
- 基本架構
- 名字空間
- 控制組
- 聯合文件系統
- 容器格式
- 網絡
- Docker Compose 項目
- 簡介
- 安裝
- 使用
- 命令說明
- YAML 模板文件
- Docker Machine 項目
- 簡介
- 安裝
- 使用
- Docker Swarm 項目
- 簡介
- 安裝
- 使用
- 調度器
- 過濾器
- Etcd 項目
- 簡介
- 安裝
- 使用 etcdctl
- Fig 項目
- 簡介
- 安裝
- 命令參考
- fig.yml參考
- 環境變量參考
- 實戰 Django
- 實戰 Rails
- 實戰 wordpress
- CoreOS 項目
- 簡介
- 工具
- 快速搭建CoreOS集群
- Kubernetes 項目
- 簡介
- 快速上手
- 基本概念
- kubectl 使用
- 架構設計
- Mesos 項目
- 簡介
- 安裝與使用
- 原理與架構
- 配置項解析
- 常見框架
- 附錄一:命令查詢
- 附錄二:常見倉庫介紹
- Ubuntu
- CentOS
- MySQL
- MongoDB
- Redis
- Nginx
- WordPress
- Node.js
- 附錄三:有用的資源