docker與k8s的關係

2021-10-03 09:05:24 字數 2371 閱讀 5183

docker和k8s的關係:

` vmware、pivotal與google cloud合作推出的pks,這個cloud foundry container runtime的全新商業支援版本致力於讓虛擬化管理員輕鬆執行和運維kubernetes,從而支援開發團隊在vsphere或google cloud platform上執行kubernetes。這其中提到乙個重要的名詞——kubernetes(k8s)。

![在這裡插入描述](

vmware、pivotal與google cloud合作推出的pks,這個cloud foundry container runtime的全新商業支援版本致力於讓虛擬化管理員輕鬆執行和運維kubernetes,從而支援開發團隊在vsphere或google cloud platform上執行kubernetes。這其中提到乙個重要的名詞——kubernetes(k8s)。

那麼k8s和我們熟知的docker (開源的應用容器引擎)有怎麼樣的關係呢

先來回顧一下docker

docker 是乙個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的linux機器上,也可以實現虛擬化,容器是完全使用沙箱機制,相互之間不會有任何介面

![在這裡插入描述](

我們具體來看看docker。

![在這裡插入描述](

也就是,「搭建、傳送、執行」

舉個例子: 簡單的說就好比建房子,我經過一系列的操作可以將房子建造起來然後在住了一段日子後,我發現另乙個地段更好,然後我就可以將現在住的房子複製乙份做成映象,放在我的揹包中等到了目的地我就可以用映象,將一套房子複製出來docker的第二句口號就是:「build once,run anywhere」。docker技術的三大核心概念,分別是:映象(image)容器(container)倉庫(repository)那個放在包裡的「映象」,就是docker映象。而我的揹包,就是docker倉庫。我複製出來的房子,就是乙個docker容器。說白了,這個docker映象,是乙個特殊的檔案系統。它除了提供容器執行時所需的程式、庫、資源、配置等檔案外,還包含了一些為執行時準備的一些配置引數(例如環境變數)。映象不包含任何動態資料,其內容在構建之後也不會被改變。就好比,複製出來的房子(容器)是一樣的,但是內在的內容是要靠使用者自己布置這樣就產生了個設想,既然乙個映象只能複製一種房子,那我可以有不同的映象,而且大家交換使用映象不是更好嗎於是乎,就變成了乙個大的公共倉庫。負責對docker映象進行管理的,是docker registry服務(類似倉庫管理員)。不是任何人建的任何映象都是合法的。萬一有人蓋了乙個有問題的房子呢?所以,docker registry服務對映象的管理是非常嚴格的。最常使用的registry公開服務,是官方的docker hub,這也是預設的 registry,並擁有大量的高質量的官方映象。

![在這裡插入描述](

說完了docker,再把目光轉向k8s

就在docker容器技術被炒得熱火朝天之時,大家發現,如果想要將docker應用於具體的業務實現,是存在困難的——編排、管理和排程等各個方面,都不容易。於是,人們迫切需要一套管理系統,對docker及容器進行更高階更靈活的管理。就在這個時候,k8s出現了k8s,就是基於容器的集群管理平台,它的全稱,是kubernetes。kubernetes 這個單詞來自於希臘語,含義是舵手或領航員。k8s是它的縮寫,用「8」字替代了「ubernete」這8個字元。和docker不同,k8s的創造者,是眾人皆知的行業巨頭——google。然而,k8s並不是一件全新的發明。它的前身,是google自己搗鼓了十多年的borg系統。乙個k8s系統,通常稱為乙個k8s集群(cluster)。這個集群主要包括兩個部分:乙個master節點(主節點)一群node節點(計算節點)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,主要負責日誌收集、儲存與查詢。

k8s與Docker有啥關係

簡要介紹 官方定義1 docker是乙個開源的應用容器引擎,開發者可以打包他們的應用及依賴到乙個可移植的容器中,發布到流行的linux機器上,也可實現虛擬化。官方定義2 k8s是乙個開源的容器集群管理系統,可以實現容器集群的自動化部署 自動擴縮容 維護等功能。與傳統技術對比 接下來我們看兩張經典的圖...

docker和k8s版本對應關係

截止2019.08.09最新的版本支援資訊 kubernetes 1.15.2 docker版本1.13.1 17.03 17.06 17.09 18.06 18.09 kubernetes 1.15.1 docker版本1.13.1 17.03 17.06 17.09 18.06 18.09 ku...

k8s集群部署 docker部署k8s安裝篇

1 安裝docker 緊接著配置乙個穩定 stable 的倉庫 倉庫配置會儲存到 etc yum.repos.d docker ce.repo檔案中 yum config manager add repo 更新yum安裝的相關docke軟體包 安裝docker ce yum update y yum...