本文章內容:
虛擬化概述。
1. 虛擬化
1.1 主機級虛擬化
1.1.1 類型一
1.1.2 類型二:VMware Workstation、Virtual Box、KVM、Xen
1.2 容器級虛擬化
2. 容器歷史由來
FreeBSD上的jail → Linux Vserver(chroot) → LXC → Docker
3. 容器隔離的資源
UTS、Mount、IPC、PID、User、Net,由名稱空間namespace隔離
4. CGroups (Control Groups)
把系統級的資源分成多個組,再把每一個組內的資源量分配到特定的用戶空間的進程上。
- blkio:塊設備IO
- cpu:CPU
- cpuacct:CPU資源使用報告
- cpuset:多處理器平台上的CPU集合
- devices:設備訪問
- freezer:掛起或恢復任務
- memory:記憶體用量及報告
- perf_event:對cgroup中的任務進行統一性能測試
- net_cls:cgroup中的任務創建的數據報文的類別標識符
5. 容器最核心的三個組成
namespaces、chroot、cgroups,在內核級實現。
6. LXC、Docker
容器是Linux內核中的技術,LXC是容器技術的前端工具,使容器技術更容易使用,而Docker是LXC的增強版,後來Docker研發自己的容器引擎叫libcontainer,更之後叫runC。LXC → Libcontainer → runC
7. 編排工具
Docker自己的編排工具:machine + swarm + compose
ASF:mesos + marathon
Google:kubernetes (K8S)