一文讀懂Kubernetes開源系統(tǒng)_第1頁
一文讀懂Kubernetes開源系統(tǒng)_第2頁
一文讀懂Kubernetes開源系統(tǒng)_第3頁
一文讀懂Kubernetes開源系統(tǒng)_第4頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

一文讀懂Kubernetes開源系統(tǒng)

如今容器化技術(shù)日益火爆和成熟,例如Docker容器技術(shù)。Kubernetes則被作為當前IT業(yè)界廣泛認可和看好的Docker分布式系統(tǒng)解決方案。(小學問:Kubernetes也被稱為“K8S”是由于“Kubernetes”這個單詞在首字母k和尾字母s之間有8個字母,因此成為K8S),下面我們來聊一聊關(guān)于K8S的那些事。

一、什么是Kubernetes?

Kubernetes是一個開源平臺,它支持容器和容器化應用程序的自動化部署、擴展和管理。它可以在本地或云平臺中使用。Kubernetes的常見用例包括采納混合云和多云、創(chuàng)建與供應商無關(guān)的無服務器平臺,或者部署自我修復和擴展服務。盡管Kubernetes并不是唯一可用的業(yè)務流程平臺,但它是受到支持最多的平臺。DockerSwarm和OpenShift都是備選方案。

二、Kuberentes的背景

作為一個目前在生產(chǎn)環(huán)境已經(jīng)廣泛使用的開源項目,Kubernetes被定義成一個用于自動化部署、擴容和管理容器應用的開源系統(tǒng);它將一個分布式軟件的一組容器打包成一個個更簡單管理和發(fā)覺的規(guī)律單元。

Kubernetes是希臘語的意思,它最開頭由Google的幾位軟件工程師創(chuàng)立,深受公司內(nèi)部Borg和Omega項目的影響,許多設(shè)計都是從Borg中借鑒的,同時也對Borg的缺陷進行了改進。

Kubernetes目前是CloudNativeComputingFoundation(CNCF)的項目,并且是許多公司管理分布式系統(tǒng)的解決方案。

在Kubernetes統(tǒng)治了容器編排這一領(lǐng)域之前,其實也有許多容器編排方案,例如pose和Swarm,但是在運維大規(guī)模、簡單的集群時,這些方案基本已經(jīng)都被Kubernetes替代了。

Kubernetes將已經(jīng)打包好的應用鏡像進行編排,所以假如沒有容器技術(shù)的進展和微服務架構(gòu)中簡單的應用關(guān)系,其實也很難找到合適的應用場景去使用。

所以在這里我們會簡潔介紹Kubernetes的兩大——容器技術(shù)和微服務架構(gòu)。

三、容器技術(shù)

Docker已經(jīng)是容器技術(shù)的事實標準了,在前面的文章中Docker核心技術(shù)與實現(xiàn)原理曾經(jīng)介紹過Docker的實現(xiàn)主要依靠于Linux的namespace、cgroups和UnionFS。

它讓開發(fā)者將自己的應用以及依靠打包到一個可移植的容器中,讓應用程序的運行可以實現(xiàn)與環(huán)境無關(guān)。

我們能夠通過Docker實現(xiàn)進程、網(wǎng)絡(luò)以及掛載點和文件系統(tǒng)隔離的環(huán)境,并且能夠?qū)λ拗鳈C的資源進行安排。

四、Kubernetes的優(yōu)勢

首先,K8S全面擁抱微服務架構(gòu)。微服務架構(gòu)的核心就是將一個大單體應用分解為許多小的相互連接的微服務,一個微服務可以有一個或多個實例,實例的數(shù)量可能會隨著系統(tǒng)的負荷變化而進行調(diào)整,內(nèi)嵌的負載均衡器K8S平臺中發(fā)揮了重要的作用。

微服務架構(gòu)使得每個服務都可以由特地的開發(fā)團隊來開發(fā),開發(fā)者可以自由選擇開發(fā)技術(shù),這對于大規(guī)模團隊來說很有價值。另外,每個微服務獨立開發(fā)、升級、擴展,使得系統(tǒng)具備很高的穩(wěn)定性和快速迭代進化力量。

其次,Kubernetes系統(tǒng)架構(gòu)具有很強的橫向擴容力量。一個Kubernetes集群不需要修改代碼即可從只包含幾個Node節(jié)點的小集群擴展到擁有成百上千Node節(jié)點大規(guī)模集群。

利用Kubernetes供應的工具,甚至可以在線完成集群的擴容。只要微服務設(shè)計的得好,結(jié)合硬件或者公有云資源的線性增加,系統(tǒng)就能夠承受大量用戶并發(fā)訪問所帶來的壓力。

這能夠讓我們在同一個機器上運行多個不同的Docker容器,任意一個Docker的進程都不需要關(guān)懷宿主機的依靠,都各拘束鏡像構(gòu)建時完成依靠的安裝和編譯等工作。這也是為什么Docker是Kubernetes項目的一個重要依靠。

五、Kubernetes的10個特性

在人們把握了Kubernetes的基本學問之后,可能會想開頭利用其高級功能和特性。

1、Sidecars

Sidecar使用戶可以在Pod中運行其他容器以用作觀看程序或代理。用戶可以使用這個額外的容器來引導需要安裝的數(shù)據(jù),并將數(shù)據(jù)公開到容器中的其他容器。例如,Sidecar可用于處理主容器的日志記錄或身份驗證。當用戶要允許Pod中的相關(guān)進程進行通信而無需修改主容器源代碼時,Sidecar就會很有用。

2、HelmCharts

HelmCharts是Kubernetes的軟件包管理器,可用于簡化Kubernetes應用程序的安裝和管理。它使用由軟件包描述和包含Kubernetes清單文件的模板組成的圖表。

用戶可以在Kubernetes中使用清單文件來創(chuàng)建、修改和刪除資源。HelmCharts使用戶能夠創(chuàng)建和共享可復制的Kubernetes應用程序版本。其中有很多預配置的圖表及其相關(guān)性,因此HelmCharts可以使用戶能夠快速輕松地部署應用程序。

3、自定義掌握器

掌握器是調(diào)整系統(tǒng)或資源狀態(tài)的循環(huán)。使用自定義掌握器,用戶可以完成標準掌握器未包含的任務。例如,可以動態(tài)地重新加載應用程序配置。自定義掌握器可以與本機或自定義資源類型一起使用。與工具鏈相比,使用這些掌握器可以更輕松地管理部署。掌握器是單段代碼,而工具鏈則需要熟識很多接口。

4、自定義方案

Kubernetes附帶了一個默認調(diào)度程序,用于將新創(chuàng)建的Pod安排給節(jié)點。假如此方案程序無法滿意用戶的需要,或者想運行多個方案程序,則可以創(chuàng)建一個自定義方案程序。

例如,用戶可以使用自定義方案來促進云爆發(fā)。云爆發(fā)是指將工作負載移至云中以滿意更高性能或流量需求的狀況。假如用戶盼望將特別Pod與其他Pod分開處理,則自定義調(diào)度程序會很有用??梢砸罁?jù)其偏好或要求設(shè)置調(diào)度程序。調(diào)度可以依靠嚴格的匹配列表或包含和排解列表。

5、Pod中斷預算(PDB)

Pod中斷預算(PDB)是一項功能,使用戶可以限制自動停止集群中的Pod數(shù)量。它有助于確保在維護、自動縮減、升級等任務期間保持最少數(shù)量的Pod處于活動狀態(tài)。

使用Pod中斷預算(PDB),可以防止應用程序可用性或性能受到管理任務的影響。Pod中斷預算(PDB)要牢記的一個重要限制是,在自動完成更改時,假如節(jié)點發(fā)生故障,它才起作用。

6、Go模塊

Go模塊是Go軟件包的集合,可用于管理應用程序依靠項。依靠項是應用程序運行所依靠的代碼、庫或框架的一部分。Kubernetes支持v1.15版本的Go模塊。

使用模塊,用戶可以使用同一依靠包的多個版本,也可以使用存儲在不同環(huán)境中的依靠。用戶可以使用模塊來簡化分布式團隊之間的代碼共享,并最大程度地削減依靠關(guān)系更改而帶來的影響。

7、污點和容忍

污染和容忍使用戶可以將節(jié)點定向為“吸引”或“排斥”Pod。將污點安排給節(jié)點,并指定不接受或不容許安排污點的Pod。

容差安排給了容器,并向具有匹配污點的節(jié)點發(fā)出信號,表明可以接受容器。假如用戶需要在特定硬件上部署應用程序,或者想要將一組節(jié)點專用于特定用戶,則此功能很有用。

8、集群聯(lián)合

集群聯(lián)合使用戶可以將多個集群視為通過單個掌握平臺進行管理的單個規(guī)律集群。其聯(lián)合使在不同位置或環(huán)境中運行的集群更易于管理。用戶可以使用集群聯(lián)合通過使工作負載在集群之間傳遞,從而使集群具有高可用性和彈性。

9、健康檢查

用戶可以通過定義要由kubelet代理運行的探測,來檢查Kubernetes中Pod或應用程序的運行狀況。用戶可以定義就緒性、活動性和啟動探測,如下所示:

預備就緒—確定容器是否可以接收懇求。假如失敗,則從將流量定向到Pod的全部端點中刪除PodIP地址。

活動性—確定是否需要重新啟動容器。失敗意味著容器被終止并重新啟動。

啟動—確定容器中的應用程序是否已啟動。在失敗的狀況下,容器將被終止并重新啟動。用戶可以使用超時、重試次數(shù)、最小勝利或失敗閾值以及延遲的運行時間自定義探測。

10、FeatureGates

FeatureGates是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論