容器與k8s學習筆記

PaaS提供了應用託管,核心組件是應用的打包和分發機制。

docker使用Cgroups和Namespace機制創建出來的隔離環境。這種機制直接打包了應用運行所需要的整個操作系統,從而保證了本地環境與雲端環境高度一致,避免了用戶通過試錯來匹配兩種不同環境之間差異的痛苦過程。

容器的核心功能就是通過約束和修改進程的動態表現,從而爲其創造出一個邊界,Cgroups技術是用來製造約束的主要手段,Namespace是用來修改進程時圖的主要方法。

namespace 機制是Linux中創建新進程時,增加一個新的參數CLONE_NEWPID,新創建的進程將會看到一個全新的進程空間,在該進程空間;哦,它的pid 爲1,但其實在宿主機裏,這個進程的pid還是真實的值。Linux系統中提供了Mount、UTS、IPC、Network和User這些Namespace,用於對各種不同進程上下文進行‘障眼法’操作。

所以說,容器其實是一種特殊的進程,與宿主機之間使用的還是同一個操作系統的內核。

虛擬機與容器的區別:

Linux Cgroups 是Linux內核中用來爲進程設置資源限制的一個重要功能。主要是用來限制一個進程子能夠使用的資源上限,包括CPU、內存、磁盤、網絡帶寬等。此外也可以對進程進行優先級設置,審計,以及將進程掛起和恢復等操作。

Linux中,Cgroups給用戶暴露出來的操作接口是文件系統,它以文件和目錄的方式組織在操作系統的/sys/fs/cgroup 路徑下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章