## 什么是 etcd

etcd 是 CoreOS 團隊于 2013 年 6 月發起的開源項目,它的目標是構建一個高可用的分布式鍵值(key-value)數據庫,基于 Go 語言實現。我們知道,在分布式系統中,各種服務的配置信息的管理分享,服務的發現是一個很基本同時也是很重要的問題。CoreOS 項目就希望基于 etcd 來解決這一問題。
etcd 目前在 [github.com/coreos/etcd](https://github.com/coreos/etcd) 進行維護,即將發布 2.0.0 版本。
受到 [Apache ZooKeeper](http://zookeeper.apache.org/) 項目和 [doozer](https://github.com/ha/doozerd) 項目的啟發,etcd 在設計的時候重點考慮了下面四個要素:
* 簡單:支持 REST 風格的 HTTP+JSON API
* 安全:支持 HTTPS 方式的訪問
* 快速:支持并發 1k/s 的寫操作
* 可靠:支持分布式結構,基于 Raft 的一致性算法
*注:Apache ZooKeeper 是一套知名的分布式系統中進行同步和一致性管理的工具。*
*注:doozer 則是一個一致性分布式數據庫。*
*注:Raft 是一套通過選舉主節點來實現分布式系統一致性的算法,相比于大名鼎鼎的 Paxos 算法,它的過程更容易被人理解,由 Stanford 大學的 Diego Ongaro 和 John Ousterhout 提出。更多細節可以參考 [raftconsensus.github.io](http://raftconsensus.github.io)。*
一般情況下,用戶使用 etcd 可以在多個節點上啟動多個實例,并添加它們為一個集群。同一個集群中的 etcd 實例將會保持彼此信息的一致性。
- 前言
- 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
- 附錄三:有用的資源