dockers
重點:聯(lián)合文件系統(tǒng)、Image分層技術(shù)、微服務(wù)
k8s: 搭建minikube(安裝kubectl、virtuabox)。 四個節(jié)點(node)的k8s集群,一個master主節(jié)點,三個從節(jié)點(工作結(jié)點),搭建完成,檢查pod驗證準確性。在上面做比如負載均衡等,就是玩具級別的驗證。
-
Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的linux機器上,實現(xiàn)虛擬化。
image.png - 使用聯(lián)合文件系統(tǒng)
1、聯(lián)合文件系統(tǒng)(UnionFS)是一種輕量級的高性能分層文件系統(tǒng),它支持將文件系統(tǒng)中的修改信息作為一次提交,并層層疊加,同時可以將不同目錄掛載到同一個虛擬文件系統(tǒng)下,應(yīng)用看到的是掛載的最終結(jié)果。
2、聯(lián)合文件系統(tǒng)是實現(xiàn)Docker鏡像的技術(shù)基礎(chǔ)。Docker鏡像可以通過分層來進行繼承。例如,用戶基于基礎(chǔ)鏡像(用來生成其他鏡像的基礎(chǔ),往往沒有父鏡像)來制作各種不同的應(yīng)用鏡像。這些鏡像共享同一個基礎(chǔ)鏡像層,提高了存儲效率。此外,當用戶改變了一個Docker鏡像(比如升級程序到新的版本),則會創(chuàng)建一個新的層(layer)。因此,用戶不用替換整個原鏡像或者重新建立,只需要添加新層即可。用戶分發(fā)鏡像的時候,也只需要分發(fā)被改動的新層內(nèi)容(增量部分)。
*image分層技術(shù)
我們可以鏡像可以分層很多個layer,并且他們都有大小和ID,我們可以看到這里有4個layer ID號,最終這個鏡像是由他們layer組合而成,并且這個鏡像它是只讀的,它不能往里面寫數(shù)據(jù),如果想寫數(shù)據(jù)怎么辦呢?我們可以鏡像可以分層很多個layer,并且他們都有大小和ID,我們可以看到這里有4個layer ID號,最終這個鏡像是由他們layer組合而成,并且這個鏡像它是只讀的,它不能往里面寫數(shù)據(jù),如果想寫數(shù)據(jù)怎么辦呢?
- dockers與微服務(wù)
1、站在 Docker 的角度,軟件就是容器的組合:業(yè)務(wù)邏輯容器、數(shù)據(jù)庫容器、儲存容器、隊列容器......Docker 使得軟件可以拆分成若干個標準化容器,然后像搭積木一樣組合起來。
2、這正是微服務(wù)(microservices)的思想:軟件把任務(wù)外包出去,讓各種外部服務(wù)完成這些任務(wù),軟件本身只是底層服務(wù)的調(diào)度中心和組裝層。
3、微服務(wù)很適合用 Docker 容器實現(xiàn),每個容器承載一個服務(wù)。一臺計算機同時運行多個容器,從而就能很輕松地模擬出復(fù)雜的微服務(wù)架構(gòu)。
dockers與虛擬機
1、 主要解決的問題:
環(huán)境配置的難題: 操作系統(tǒng)的設(shè)置,各種庫和組件的安裝。只有它們都正確,軟件才能運行。
2、 虛擬機 是一種帶環(huán)境安裝的解決方案。
缺點:
- 資源占用多。虛擬機獨占一部分內(nèi)存和硬盤空間。
- 冗余步驟多。虛擬機是完整的操作系統(tǒng),一些系統(tǒng)級別的操作步驟,往往無法跳過,比如用戶登錄。
- 啟動慢。啟動操作系統(tǒng)需要多久,啟動虛擬機就需要多久。
3、 Linux容器 不是模擬一個完整的操作系統(tǒng),而是對進程進行隔離。
由于容器是進程級別的,相比虛擬機有很多優(yōu)勢:
- 啟動快。容器里面的應(yīng)用,直接就是底層系統(tǒng)的一個進程,而不是虛擬機內(nèi)部的進程。
- 資源占用少。容器只占用需要的資源,不占用那些沒有用到的資源;另外,多個容器可以共享資源,虛擬機都是獨享資源。
- 體積小。容器只要包含用到的組件即可,而虛擬機是整個操作系統(tǒng)的打包。
總之,容器有點像輕量級的虛擬機,能夠提供虛擬化的環(huán)境,但是成本開銷小得多。

image.png

image.png

image.png
