自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

了解容器編排的構(gòu)建塊,可以使Kubernetes入門更加容易

開發(fā) 前端
容器編排是指用于自動化,管理和調(diào)度由各個容器定義的工作負(fù)載的工具和平臺。在容器編排領(lǐng)域有很多參與者,開源工具和專有工具,如Hashicorp的Nomad,Apache Mesos,AWS的ECS等等,當(dāng)然還有谷歌的Borg項目(Kubernetes就是從這個項目演變而來的)。

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

 

了解容器編排的構(gòu)建塊,可以使Kubernetes入門更加容易

 

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

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

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

組件有兩種核心類型:

  • 工作負(fù)載管理器:一種托管和運行容器的方法
  • 集群管理器:代表集群決策的全局方法

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

管理工作負(fù)載

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

集群及其組件

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

 

了解容器編排的構(gòu)建塊,可以使Kubernetes入門更加容易

 

  • Pod:Pod定義了應(yīng)用程序的邏輯單元;它可以包含一個或多個容器,并且每個Pod都部署到一個節(jié)點上。
  • 節(jié)點(Node):這是在集群中充當(dāng)工作負(fù)載的虛擬機;Pod在節(jié)點上運行。
  • 集群:由工作節(jié)點組成,由控制平面管理。

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

管理集群

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

控制平面及其組件

控制平面包含幾個基本組件:

  • 內(nèi)存存儲(etcd):這是所有集群數(shù)據(jù)的后端存儲。雖然可以使用其他后備存儲etcd運行Kubernetes集群,但默認(rèn)情況下是開源分布式鍵值存儲。
  • 調(diào)度程序(kube-scheduler):調(diào)度程序負(fù)責(zé)將新創(chuàng)建的Pod分配給適當(dāng)?shù)墓?jié)點。
  • API前端(kube-apiserver):這是開發(fā)人員可以與Kubernetes進(jìn)行交互的網(wǎng)關(guān),以部署服務(wù),獲取指標(biāo),檢查日志等。

 

了解容器編排的構(gòu)建塊,可以使Kubernetes入門更加容易

 

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

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

使用控制器和模板

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

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

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

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

模板剖析

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

  • 告訴它如何命名應(yīng)用程序
  • 告訴它在哪里尋找容器的鏡像(通常稱為容器注冊表)
  • 告訴它要運行多少個實例(在上面的術(shù)語中,為ReplicaSets的數(shù)量)

 

了解容器編排的構(gòu)建塊,可以使Kubernetes入門更加容易

 

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

  • 環(huán)境變量
  • 密碼位置
  • 容器應(yīng)掛載以供使用的任何數(shù)據(jù)卷
  • 每個容器或Pod允許使用多少CPU和內(nèi)存
  • 容器應(yīng)運行的特定命令
  • 而這樣的例子還有很多

匯集全部

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

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

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

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

總結(jié)

位于容器上面的許多層和擴展可能會使容器協(xié)編排難以理解。但是,一旦分解了各個部分并查看它們之間的相互作用,它實際上就非常清晰了。

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2020-01-09 15:28:30

KubernetesDocker:容器

2019-11-25 11:12:18

企業(yè)應(yīng)用軟件容器操作系統(tǒng)

2017-10-10 08:30:21

Kubernetes容器編排

2022-02-09 21:27:15

KubernetesDocker容器

2023-04-26 15:43:24

容器編排容器編排工具

2023-08-21 15:28:36

云原生Kubernetes

2023-09-04 15:09:03

容器編排工具KubernetesDocker

2020-07-29 22:46:59

容器KubernetesPaaS

2020-11-05 11:00:21

KubernetesKustomize開源

2020-08-13 11:53:36

Kubernetes容器工具

2020-10-29 10:17:24

AnsibleKubernetes容器編排自動化

2022-02-23 20:20:48

Kubernetes網(wǎng)絡(luò)模型

2020-06-20 14:18:53

Kubernetes容器開發(fā)

2015-08-04 11:01:41

開源容器編排Kubernetes

2016-11-16 19:28:04

容器技術(shù)

2023-06-26 07:32:43

Kubernetes容器

2020-03-30 21:40:35

容器編排工具

2023-12-14 15:51:15

2017-06-13 16:03:35

混合云容器編排引擎

2023-11-03 13:20:13

Kubernetes
點贊
收藏

51CTO技術(shù)棧公眾號