10分鐘看懂Docker和K8S

10分鐘看懂Docker和K8S
在容器技術以前,業界的網紅是虛擬機。虛擬機技術的表明,是VMWare和OpenStack
虛擬機,就是在你的操做系統裏面,裝一個軟件,而後經過這個軟件,再模擬一臺甚至多臺「子電腦」出來。
Docker自己並非容器,它是建立容器的工具,是應用容器引擎。
第一句,是「Build, Ship and Run」。
第二句口號就是:「Build once,Run anywhere(搭建一次,處處能用)」。
Docker技術的三大核心概念,分別是:
鏡像(Image)
容器(Container)
倉庫(Repository)
我剛纔例子裏面,那個放在包裏的「鏡像」,就是Docker鏡像。而個人揹包,就是Docker倉庫。我在空地上,用魔法造好的房子,就是一個Docker容器。
說白了,這個Docker鏡像,是一個特殊的文件系統。它除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些爲運行時準備的一些配置參數(例如環境變量)。鏡像不包含任何動態數據,其內容在構建以後也不會被改變。
負責對Docker鏡像進行管理的,是Docker Registry服務(相似倉庫管理員)
K8S,就是基於容器的集羣管理平臺,它的全稱,是kubernetes。
一個K8S系統,一般稱爲一個K8S集羣(Cluster)。
這個集羣主要包括兩個部分:
一個Master節點(主節點),Master節點主要仍是負責管理和控制。
一羣Node節點(計算節點),工做負載節點,裏面是具體的容器。

 

Master節點包括API Server、Scheduler、Controller manager、etcd。

 

API Server是整個系統的對外接口,供客戶端和其它組件調用,至關於「營業廳」。
Scheduler負責對集羣內部的資源進行調度,至關於「調度室」。
Controller manager負責管理控制器,至關於「大總管」。
而後是Node節點。

 

Node節點包括Docker、kubelet、kube-proxy、Fluentd、kube-dns(可選),還有就是Pod。
Pod是Kubernetes最基本的操做單元。一個Pod表明着集羣中運行的一個進程,它內部封裝了一個或多個緊密相關的容器。除了Pod以外,K8S還有一個Service的概念,一個Service能夠看做一組提供相同服務的Pod的對外訪問接口。這段不太好理解,跳過吧。
Docker,不用說了,建立容器的。
Kubelet,主要負責監視指派到它所在Node上的Pod,包括建立、修改、監控、刪除等。
Kube-proxy,主要負責爲Pod對象提供代理。
Fluentd,主要負責日誌收集、存儲與查詢。
相關文章
相關標籤/搜索