新手看docker & k8s

本篇文章主要從新手的角度熟悉一下docker k8s

新手看docker & k8s

references:

IaaS,PaaS,SaaS 的區別

什麼是 IaaS,PaaS,SaaS

image

IaaS:基礎設施服務,Infrastructure-as-a-service
PaaS:平臺服務,Platform-as-a-service
SaaS:軟件服務,Software-as-a-service

以製作pizza爲例子,三個item的區別可以如下圖所示:

image

映射到software中可以這樣看:

image

認識Docker

虛擬機

image

虛擬機,類似於“子電腦”

在“子電腦”裏,你可以和正常電腦一樣運行程序,例如開QQ。如果你願意,你可以變出好幾個“子電腦”,裏面都開上QQ。“子電腦”和“子電腦”之間,是相互隔離的,互不影響。

++虛擬機屬於虛擬化技術。而Docker這樣的容器技術,也是虛擬化技術,屬於輕量級的虛擬化。++

虛擬機雖然可以隔離出很多“子電腦”,但佔用空間更大,啓動更慢,虛擬機軟件可能還要花錢(例如VMWare)。

而容器技術恰好沒有這些缺點。它不需要虛擬出整個操作系統,只需要虛擬一個小規模的環境(類似“沙箱”)。

下面這張圖是虛擬機和容器的對比:

image

Docker

Docker技術的三大核心概念,分別是:

  • 鏡像(Image)

  • 容器(Container)

  • 倉庫(Repository)

這個Docker鏡像,是一個特殊的文件系統。它除了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些爲運行時準備的一些配置參數(例如環境變量)。鏡像不包含任何動態數據,其內容在構建之後也不會被改變。

也就是說,每次變出房子,房子是一樣的,但生活用品之類的,都是不管的。誰住誰負責添置。

負責對Docker鏡像進行管理的,是Docker Registry服務(類似倉庫管理員)

K8S

創造者:Google

如果想要將Docker應用於具體的業務實現,是存在困難的——編排、管理和調度等各個方面,都不容易。於是,人們迫切需要一套管理系統,對Docker及容器進行更高級更靈活的管理。

就在這個時候,K8S出現了。

K8S,就是基於容器的集羣管理平臺,它的全稱,是kubernetes。

一個K8S系統,通常稱爲一個K8S集羣(Cluster)。

這個集羣主要包括兩個部分:

一個Master節點(主節點):
Master節點主要還是負責管理和控制。
一羣Node節點(計算節點):Node節點是工作負載節點,裏面是具體的容器。

image

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

API Server是整個系統的對外接口,供客戶端和其它組件調用,相當於“營業廳”。

Scheduler負責對集羣內部的資源進行調度,相當於“調度室”。

Controller manager負責管理控制器,相當於“大總管”。

image

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,主要負責日誌收集、存儲與查詢。

稍微深入瞭解Docker

docker架構

image
image

調度問題

references:

k8s學習筆記-調度介紹

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