溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么理解Kubernetes容器編排的構(gòu)建塊

發(fā)布時(shí)間:2021-11-02 17:10:57 來源:億速云 閱讀:133 作者:iii 欄目:web開發(fā)

本篇內(nèi)容主要講解“怎么理解Kubernetes容器編排的構(gòu)建塊”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么理解Kubernetes容器編排的構(gòu)建塊”吧!

容器編排是指用于自動(dòng)化,管理和調(diào)度由各個(gè)容器定義的工作負(fù)載的工具和平臺(tái)。在容器編排領(lǐng)域有很多參與者,開源工具和專有工具,如Hashicorp的Nomad,Apache  Mesos,AWS的ECS等等,當(dāng)然還有谷歌的Borg項(xiàng)目(Kubernetes就是從這個(gè)項(xiàng)目演變而來的)。每種技術(shù)都有其優(yōu)缺點(diǎn),但是Kubernetes的日益普及和社區(qū)的強(qiáng)大支持已經(jīng)清楚地表明,Kubernetes目前是容器編排當(dāng)之無愧的領(lǐng)導(dǎo)者了。

怎么理解Kubernetes容器編排的構(gòu)建塊

在使用開源軟件時(shí),Kubernetes具有明顯的優(yōu)勢(shì)。作為一個(gè)開源平臺(tái),它可以在本地部署,并且在Kubernetes之上構(gòu)建其他開源軟件也很有意義。此外,作為最為活躍的開源生態(tài)之一,它有超過40000名的貢獻(xiàn)者,并且由于許多開發(fā)人員已經(jīng)熟悉Kubernetes,因此用戶可以更輕松地集成基于Kubernetes的開源解決方案。

將Kubernetes分解為構(gòu)建塊

分解Kubernetes的最簡(jiǎn)單方法是查看容器編排的核心概念。有一些容器,用作基礎(chǔ)工作模塊,然后將各個(gè)組件構(gòu)建在彼此之上,以將系統(tǒng)捆綁在一起。

組件有兩種核心類型:

  • 工作負(fù)載管理器:一種托管和運(yùn)行容器的方法

  • 集群管理器:代表集群決策的全局方法

在Kubernetes術(shù)語中,這些角色由工作節(jié)點(diǎn)和管理工作的控制平面(即Kubernetes組件)完成。

管理工作負(fù)載

Kubernetes工作節(jié)點(diǎn)具有嵌套的組件層。在基礎(chǔ)層是容器本身。

集群及其組件

從技術(shù)上講,容器在容器中運(yùn)行,容器是Kubernetes集群中的原子對(duì)象類型。它們之間的關(guān)系如下:

怎么理解Kubernetes容器編排的構(gòu)建塊
  • Pod:Pod定義了應(yīng)用程序的邏輯單元;它可以包含一個(gè)或多個(gè)容器,并且每個(gè)Pod都部署到一個(gè)節(jié)點(diǎn)上。

  • 節(jié)點(diǎn)(Node):這是在集群中充當(dāng)工作負(fù)載的虛擬機(jī);Pod在節(jié)點(diǎn)上運(yùn)行。

  • 集群:由工作節(jié)點(diǎn)組成,由控制平面管理。

每個(gè)節(jié)點(diǎn)都運(yùn)行一個(gè)稱為kublet的代理,該代理用于在容器中運(yùn)行容器,而一個(gè)kube-proxy用于管理網(wǎng)絡(luò)規(guī)則。

管理集群

工作節(jié)點(diǎn)管理容器,Kubernetes控制平面對(duì)集群進(jìn)行全局決策。

控制平面及其組件

控制平面包含幾個(gè)基本組件:

  • 內(nèi)存存儲(chǔ)(etcd):這是所有集群數(shù)據(jù)的后端存儲(chǔ)。雖然可以使用其他后備存儲(chǔ)etcd運(yùn)行Kubernetes集群,但默認(rèn)情況下是開源分布式鍵值存儲(chǔ)。

  • 調(diào)度程序(kube-scheduler):調(diào)度程序負(fù)責(zé)將新創(chuàng)建的Pod分配給適當(dāng)?shù)墓?jié)點(diǎn)。

  • API前端(kube-apiserver):這是開發(fā)人員可以與Kubernetes進(jìn)行交互的網(wǎng)關(guān),以部署服務(wù),獲取指標(biāo),檢查日志等。

怎么理解Kubernetes容器編排的構(gòu)建塊

控制器管理器(kube-controller-manager):監(jiān)控集群并進(jìn)行必要的更改,以使集群保持所需的狀態(tài),例如擴(kuò)展節(jié)點(diǎn),為每個(gè)復(fù)制控制器維護(hù)正確的Pod數(shù)量以及創(chuàng)建新的命名空間。

控制平面做出決策以確保集群正常運(yùn)行,并抽象化這些決策,讓開發(fā)者不必?fù)?dān)心它們。它的功能非常復(fù)雜,系統(tǒng)的用戶需要了解控制平面的邏輯約束,而又不會(huì)陷入細(xì)節(jié)上。

使用控制器和模板

集群的組件決定了集群如何進(jìn)行自我管理,但是開發(fā)者管理員如何告訴集群來運(yùn)行軟件?這是控制器和模板發(fā)揮作用的地方。

控制器編排Pod,而Kubernetes則針對(duì)不同的用例使用不同類型的控制器。但是關(guān)鍵的是Jobs(用于一次性完成的作業(yè))和ReplicaSets(用于運(yùn)行一組指定的提供服務(wù)的相同容器)。

像Kubernetes中的其他所有內(nèi)容一樣,這些概念構(gòu)成了更復(fù)雜的系統(tǒng)的構(gòu)建塊,這些系統(tǒng)允許開發(fā)者運(yùn)行彈性服務(wù)。建議不要直接使用ReplicaSets,而應(yīng)該使用Deployments。部署代表用戶管理ReplicaSet,并允許滾動(dòng)更新。Kubernetes部署可確保僅在更新某些Pod時(shí)將它們關(guān)閉,從而實(shí)現(xiàn)零停機(jī)時(shí)間部署。同樣,CronJobs管理作業(yè),并用于運(yùn)行計(jì)劃的和重復(fù)的流程。Kubernetes的許多層都允許更好的自定義,但是CronJobs和Deployments足以滿足大多數(shù)用例。

一旦知道選擇哪個(gè)控制器來運(yùn)行服務(wù),就需要使用模板對(duì)其進(jìn)行配置。

模板剖析

Kubernetes模板是一個(gè)YAML文件,用于定義容器運(yùn)行所用的參數(shù)。就像任何形式的代碼配置一樣,它具有自己的特定格式和要求,需要學(xué)習(xí)很多東西。但慶幸的是,需要提供的信息與針對(duì)任何容器編排運(yùn)行代碼相同:

  • 告訴它如何命名應(yīng)用程序

  • 告訴它在哪里尋找容器的鏡像(通常稱為容器注冊(cè)表)

  • 告訴它要運(yùn)行多少個(gè)實(shí)例(在上面的術(shù)語中,為ReplicaSets的數(shù)量)

怎么理解Kubernetes容器編排的構(gòu)建塊

配置的靈活性是Kubernetes的眾多優(yōu)勢(shì)之一。使用不同的資源和模板,還可以提供有關(guān)以下內(nèi)容的集群信息:

  • 環(huán)境變量

  • 密碼位置

  • 容器應(yīng)掛載以供使用的任何數(shù)據(jù)卷

  • 每個(gè)容器或Pod允許使用多少CPU和內(nèi)存

  • 容器應(yīng)運(yùn)行的特定命令

  • 而這樣的例子還有很多

匯集全部

組合來自不同資源的模板,使用戶可以互操作Kubernetes中的組件,并根據(jù)自己的需求自定義它們。

在更大的生態(tài)系統(tǒng)中,開發(fā)者可以通過結(jié)合使用ConfigMap和Secrets的Jobs,services和Deployments來組合成一個(gè)應(yīng)用程序(在部署過程中),所有這些操作都必須經(jīng)過精心策劃。

這些編排步驟的管理可以手動(dòng)完成,也可以使用常見的軟件包管理選項(xiàng)之一來完成。雖然絕對(duì)有可能根據(jù)Kubernetes  API進(jìn)行自己的部署,但是打包配置通常是一個(gè)好主意(特別是如果要交付的開源軟件可能是由不在團(tuán)隊(duì)中的人直接部署和管理的)。

Kubernetes首選的軟件包管理器是Helm。使用Helm并不需要花很多時(shí)間,它使你可以打包自己的軟件,以便在Kubernetes集群上輕松安裝。

到此,相信大家對(duì)“怎么理解Kubernetes容器編排的構(gòu)建塊”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI