kubernetes是go語言寫的,他里面有一些restful?api接口,是開源容器應(yīng)用自動化部署技術(shù),也就是大家經(jīng)常說的k8s。
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供華坪網(wǎng)站建設(shè)、華坪做網(wǎng)站、華坪網(wǎng)站設(shè)計(jì)、華坪網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、華坪企業(yè)網(wǎng)站模板建站服務(wù),10多年華坪做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
kubernetes(k8s)是自動化容器操作的開源平臺,這些操作包括部署,調(diào)度和節(jié)點(diǎn)集群間擴(kuò)展。如果你曾經(jīng)用過Docker容器技術(shù)部署容器,那么可以將Docker看成Kubernetes內(nèi)部使用的低級別組件。Kubernetes不僅僅支持Docker,還支持Rocket,這是另一種容器技術(shù)。
使用Kubernetes可以:
自動化容器的部署和復(fù)制
隨時(shí)擴(kuò)展或收縮容器規(guī)模
將容器組織成組,并且提供容器間的負(fù)載均衡
很容易地升級應(yīng)用程序容器的新版本
提供容器彈性,如果容器失效就替換它,等等...
K8s學(xué)習(xí)有一個前提條件,需要先掌握docker,如果你沒有docker基礎(chǔ)的話,那還不能學(xué)習(xí) K8s k8s它底層的部署容器的那么容器本來就是docker。
可以看看這個視頻教程,還是非常認(rèn)真仔細(xì)的!
容器是將應(yīng)用和其依賴打包在一起的一個集合。
我們要發(fā)布一款應(yīng)用,一般流程是先在測試服務(wù)器上開發(fā),配置環(huán)境,測通,然后再到生產(chǎn)環(huán)境,配置環(huán)境依賴然后部署應(yīng)用。當(dāng)我們有大量架構(gòu)不同的應(yīng)用需要配置到不同的生產(chǎn)環(huán)境,比如公有云、虛擬機(jī),很容易因?yàn)榄h(huán)境的不容導(dǎo)致發(fā)布失敗。
為了解決這個問題,受集裝箱的啟發(fā),我們將應(yīng)用和其依賴打包成一個輕量級、獨(dú)立的、標(biāo)準(zhǔn)的集合,使其可以順暢地運(yùn)行在任何一個安裝了容器管理系統(tǒng)的服務(wù)器中而不需要額外配置環(huán)境。這個集合就是容器。
容器使得開發(fā)運(yùn)維人員只需要在發(fā)布之初在本地配置一次環(huán)境,就可以無差別地在測試環(huán)境、開發(fā)環(huán)境,公有云服務(wù)器、虛擬機(jī)上運(yùn)行和維護(hù)應(yīng)用。
Docker是使用Go語言開發(fā)的一個開源項(xiàng)目,實(shí)現(xiàn)輕量級的操作系統(tǒng)虛擬化解決方案,Docker可以自行搭建和配置開發(fā)環(huán)境,可以方便地創(chuàng)建使用容器,并且提供鏡像倉庫。
Doker的核心概念包含:
容器與以容器為基本單位,提供構(gòu)建發(fā)布運(yùn)行應(yīng)用的平臺。
Kubernetes是容器集群管理系統(tǒng),是一個開源的平臺,可以實(shí)現(xiàn)容器集群的自動化部署、自動擴(kuò)縮容、維護(hù)等功能。主要概念有:
參考文檔:
Kubernetes(簡稱k8s)是Google在2014年6月開源的一個容器集群管理系統(tǒng),使用Go語言開發(fā),用于管理云平臺中多個主機(jī)上的容器化的應(yīng)用,Kubernetes的目標(biāo)是讓部署容器化的應(yīng)用簡單并且高效,Kubernetes提供了資源調(diào)度、部署管理、服務(wù)發(fā)現(xiàn)、擴(kuò)容縮容、監(jiān)控,維護(hù)等一整套功能。,努力成為跨主機(jī)集群的自動部署、擴(kuò)展以及運(yùn)行應(yīng)用程序容器的平臺。 它支持一系列容器工具, 包括Docker等。
所以注意:K8s學(xué)習(xí)有一個前提條件,需要先掌握docker,如果你沒有docker基礎(chǔ)的話,那還不能學(xué)習(xí) K8s k8s它底層的部署容器的那么容器本來就是docker。
還可以通過B站上這個視頻教程了解更多:
k8s是google公司使用go語言開發(fā),借鑒borg系統(tǒng)開發(fā)出來的。
k8s集群服務(wù)器主要分為兩類角色,分別為master和node。
api server: k8s網(wǎng)關(guān),所有指令請求都必須經(jīng)過apiserver。
scheduler: 調(diào)度器 根據(jù)調(diào)度算法,將請求資源調(diào)度到某一個node節(jié)點(diǎn)。
controller: 控制器,維護(hù)k8s資源對象。
etcd: 分布式存儲組件,用于存儲資源對象。
docker: 運(yùn)行容器的基礎(chǔ)環(huán)境,容器引擎。
kubelet: 每個node節(jié)點(diǎn)都存在一份,在node節(jié)點(diǎn)上的資源操作指令均由kubelet執(zhí)行,從etcd掃描相關(guān)請求,在節(jié)點(diǎn)上執(zhí)行請求。
kube-proxy: 代理服務(wù),負(fù)載均衡
fluentd: 日志收集服務(wù)
pod: 是k8s管理的基本單位(最小單元),pod 內(nèi)部是容器
k8s是用來管理容器的,但是不直接操作容器,最小操作單元為pod
特點(diǎn):
pod是一個虛擬化的分組(有自己的ip地址、主機(jī)名),pod相當(dāng)于獨(dú)立主機(jī),可以封裝一個或多個容器。通常情況下,一個pod中要么部署一個服務(wù),要么部署多個相關(guān)的服務(wù)
1、pod底層網(wǎng)絡(luò)和數(shù)據(jù)存儲:
pod底層網(wǎng)絡(luò)和存儲主要依賴pause容器,該容器作用如下:
2、pod內(nèi)部容器使用localhost相互訪問
3、pod內(nèi)部容器創(chuàng)建之前必須先創(chuàng)建pause