什么是Kubernetes:開源容器編排系統(tǒng)簡(jiǎn)介

Kubernetes Khronicles是Vultr的系列文章,重點(diǎn)介紹有關(guān)Kubernetes開源容器編排的信息和見解。在本文中,Vultr的Cloud Native技術(shù)主管David Dymko準(zhǔn)確解釋了Kubernetes是什么,并分享了有關(guān)容器協(xié)調(diào)器內(nèi)部工作的詳細(xì)信息。

Kubernetes已成為用于自動(dòng)化容器化應(yīng)用程序的部署,擴(kuò)展和管理的主流開源編排工具。Kubernetes最初由Google的團(tuán)隊(duì)設(shè)計(jì)并于2014年發(fā)布,現(xiàn)已由Cloud Native Computing Foundation正式維護(hù)。Kubernetes已迅速成為容器編排的黃金標(biāo)準(zhǔn),原因有以下幾個(gè):廣泛的社區(qū)支持,與云無(wú)關(guān)的事實(shí)(種類...請(qǐng)參閱以下有關(guān)插件的更多信息),并且它提供了生產(chǎn)級(jí)編排。

以下是Kubernetes的概念,工作原理,常見的Kubernetes術(shù)語(yǔ)以及開發(fā)人員如何使用Kubernetes進(jìn)行構(gòu)建和擴(kuò)展的詳細(xì)信息。

什么是Kubernetes?

Kubernetes源自希臘語(yǔ)中的“舵手”(舵手像集裝箱船一樣操縱船的人),它解釋了Kubernetes(或K8s)的標(biāo)志性符號(hào)為何是輪轂。Kubernetes是一個(gè)開放源代碼的容器編排工具,它使開發(fā)人員可以快速,輕松地部署,擴(kuò)展和管理容器化的應(yīng)用程序。

這是另一種思考方式:Kubernetes是一種工具,可讓您管理所有云計(jì)算,將它們視為1個(gè)巨型資源池而不是多個(gè)實(shí)例。Kubernetes不會(huì)讓多個(gè)服務(wù)器運(yùn)行各種CPU和內(nèi)存資源(您可能沒有使用這些服務(wù)器來(lái)充分利用CPU能力和內(nèi)存池的全部容量),而是會(huì)嘗試使用您所購(gòu)買的資源來(lái)優(yōu)化所有計(jì)算資源的分配。充分地

由于一些關(guān)鍵差異?因素,Kubernetes成為粉絲的最愛

  • Kubernetes實(shí)現(xiàn)自我修復(fù)和可伸縮性
    假設(shè)我們部署了一個(gè)容器,并且始終希望它運(yùn)行2個(gè)實(shí)例。Kubernetes將監(jiān)視并確保始終有2個(gè)正在運(yùn)行。如果要崩潰,它將啟動(dòng)一個(gè)新實(shí)例以確保所需的2狀態(tài)正在運(yùn)行。

    有了可伸縮性,如果我們決定總是要運(yùn)行5個(gè)實(shí)例而不是2個(gè)實(shí)例,那么在幾次按鍵操作中就可以運(yùn)行該實(shí)例的5個(gè)副本而不是2個(gè)實(shí)例。僅當(dāng)有足夠的工作程序節(jié)點(diǎn)資源來(lái)支持此工作時(shí),這才有可能...但是,如果您擁有集群自動(dòng)伸縮器,則它將在需要時(shí)自動(dòng)部署新的工作程序節(jié)點(diǎn)。

  • Kubernetes的垃圾箱打包
    允許定義容器需要多少CPU和RAM。Kubernetes將確保容器具有請(qǐng)求的可用資源,然后將選擇適當(dāng)?shù)墓ぷ鞒绦蚬?jié)點(diǎn)。由于您不會(huì)浪費(fèi)CPU /內(nèi)存,因此可以降低成本。
  • Kubernetes的負(fù)載平衡
    如果您正在運(yùn)行應(yīng)用程序的多個(gè)容器,則Kubernetes將在這些容器之間分配流量。
  • Kubernetes服務(wù)發(fā)現(xiàn)
    部署容器時(shí),可以通過(guò)稱為服務(wù)的Kubernetes類型公開它們,其行為類似于DNS。這使您的容器可以輕松地相互通信。

Kubernetes如何工作?

Kubernetes通過(guò)部署包含控制平面的主節(jié)點(diǎn)來(lái)工作。控制平面具有各種組件,例如:

  • ETCD:這是一個(gè)包含所有集群配置的鍵/值存儲(chǔ)
  • Kube Scheduler:這將檢查您所請(qǐng)求的配置并確定最佳位置
  • Kube控制器管理器:控制器監(jiān)視集群中的狀態(tài),并努力確保您定義的所需狀態(tài)是當(dāng)前狀態(tài)。
  • API服務(wù)器:這是集群的核心。控制平面內(nèi)和控制平面外的所有組件均與API服務(wù)器通信。

雖然控制平面的作用就像操作的大腦,但工作節(jié)點(diǎn)是您部署應(yīng)用程序的地方。然后,工作程序節(jié)點(diǎn)與運(yùn)行在工作程序節(jié)點(diǎn)本身上的一些組件通信回控制平面。

  • Kubelet:這被認(rèn)為是“節(jié)點(diǎn)代理”,它將工作程序節(jié)點(diǎn)注冊(cè)到控制平面,并且還管理其給定節(jié)點(diǎn)上的Pod。
  • Kube代理:這是一個(gè)在每個(gè)工作節(jié)點(diǎn)上運(yùn)行的網(wǎng)絡(luò)代理,并管理整個(gè)群集中的網(wǎng)絡(luò)配置。
  • 容器運(yùn)行時(shí):您的集群使用哪個(gè)容器運(yùn)行時(shí)取決于云提供商。流行的運(yùn)行時(shí)是ContainerD。

Kubernetes插件

由于Kubernetes與云無(wú)關(guān),因此每個(gè)提供商都負(fù)責(zé)提供兩個(gè)核心插件。為了獲得正在運(yùn)行的云的全部好處,這些至關(guān)重要:

當(dāng)你部署Vultr神鷹(一terraform模塊,規(guī)定一個(gè)Kubernetes集群與Vultr CCM和CSI),所有這些插件都已經(jīng)建立。換句話說(shuō),您的集群很容易成為Vultr就緒的。

其他需要考慮的Kubernetes插件:

與我們分享:您覺得哪些Kubernetes插件最有用?向我們發(fā)送@Vultr來(lái)分享您的K8s故事。

常見的Kubernetes術(shù)語(yǔ)定義

在使用Kubernetes進(jìn)行運(yùn)行之前,需要了解一些關(guān)鍵術(shù)語(yǔ):

  • Kubernetes集群:一組運(yùn)行容器化應(yīng)用程序的節(jié)點(diǎn)。
  • Kubernetes運(yùn)算符:Kubernetes的擴(kuò)展,可讓您構(gòu)建自己的自定義資源。
  • Kubernetes節(jié)點(diǎn):取決于群集的虛擬或物理工作節(jié)點(diǎn)。
  • Kubernetes容器:Kubernetes中最小,最基本的可部署對(duì)象。吊艙可容納容器。吊艙可以容納1個(gè)或多個(gè)容器。
  • Kubernetes機(jī)密:可讓您存儲(chǔ)和管理敏感信息,例如密碼,OAuth令牌和ssh密鑰。
  • Kubernetes服務(wù):如果您希望公開部署(一個(gè)或多個(gè))以便從集群內(nèi)部(或外部)訪問(wèn),則使用
  • Kubectl:?Kubernetes命令行工具,可讓您針對(duì)Kubernetes集群運(yùn)行命令
  • Minikube:?一種工具,可讓您在本地運(yùn)行Kubernetes。

開發(fā)人員如何使用Kubernetes?

隨著崛起微服務(wù),Kubernetes已經(jīng)普及上升為它允許開發(fā)者輕松地構(gòu)建分布式應(yīng)用程序。微服務(wù)提供了一種構(gòu)建和部署應(yīng)用程序的方式。無(wú)需構(gòu)建單個(gè)大型“整體”應(yīng)用程序,而是構(gòu)建小型的“小規(guī)?!睉?yīng)用程序,它們可以很好地完成一件事和一件事。然后,您將有多個(gè)可以協(xié)同工作但彼此獨(dú)立的應(yīng)用程序。由于這些組件彼此獨(dú)立,因此您可以根據(jù)需要擴(kuò)展某些應(yīng)用程序。

例如:在黑色星期五期間,您可能希望啟動(dòng)更多POS系統(tǒng)實(shí)例來(lái)處理大量交易。在“傳統(tǒng)”應(yīng)用程序中,您將必須部署整個(gè)應(yīng)用程序的多個(gè)實(shí)例,這可能很浪費(fèi)。

與Kubernetes一樣,CI / CD(連續(xù)集成/連續(xù)交付)也適用于微服務(wù)。您可以完全自動(dòng)化應(yīng)用程序部署??紤]以下示例:您可能具有CI / CD管道,該管道會(huì)將您的應(yīng)用程序構(gòu)建到容器中,然后更新Kubernetes配置以使用此最新容器,而不僅僅是將代碼提交到存儲(chǔ)庫(kù)。

另一個(gè)示例涉及使用Kubernetes輕松調(diào)度批處理作業(yè)。在這種用例中,您可以安排工作負(fù)載在滿足您需求的特定時(shí)間運(yùn)行。使用Kubernetes,因?yàn)樗鼈兪侨萜鳎运鼘⒈徊渴?,完成其工作然后被刪除。您不必?fù)?dān)心僅為該批處理作業(yè)使用專用實(shí)例,Kubernetes將確保您的作業(yè)在需要時(shí)運(yùn)行。

總體而言,微服務(wù)設(shè)計(jì)有兩個(gè)主要優(yōu)點(diǎn):

  1. 高效地管理云資源(潛在的成本節(jié)省)
  2. 獨(dú)立縮放應(yīng)用程序的特定部分

關(guān)于Vultr的Kubernetes引擎

準(zhǔn)備開始使用Vultr Kubernetes進(jìn)行構(gòu)建了嗎?一起獲得K8和Vultr的所有好處。在此處訪問(wèn)Vultr插件以訪問(wèn)Terraform

加入Kubernetes對(duì)話

啟動(dòng)您的Vultr Kubernetes集群!部署Terraform Vultr Condor。瀏覽Terraform Vultr模塊以獲取更多資源。

告訴我們您的Kubernetes故事!我們很樂(lè)意聽取您的意見。向我們發(fā)送@Vultr分享。

THE END
亚洲中文色欧另类欧美,久久久久久久激情,亚洲 日韩 欧美 另类 国产,中文字幕高清无码男人的天堂 www.sucaiwu.net