Kubernetes資源類型的示例分析

這篇文章給大家分享的是有關(guān)Kubernetes資源類型的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創(chuàng)新互聯(lián)公司2013年至今,先為秦安等服務(wù)建站,秦安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為秦安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

Kubernetes是一個開源的容器管理平臺,用于部署和管理容器化的工作負(fù)載。在生產(chǎn)環(huán)境中運(yùn)行容器時,您將擁有幾十個、甚至數(shù)千個容器。

這些容器需要部署、管理和連接,這很難手動完成。這就是Kubernetes的作用??梢园阉胂蟪梢粋€容器調(diào)度程序。

Kubernetes被設(shè)計成與Docker一起工作,Docker是一個容器化平臺,它將應(yīng)用程序和所有依賴項打包成一個容器。

舉例:Docker用于隔離、打包和以容器的形式運(yùn)輸應(yīng)用程序。Kubernetes是用于部署和擴(kuò)展應(yīng)用程序的容器調(diào)度器。

關(guān)于Kubernetes,我們可以:

  • 在不停機(jī)的情況下部署服務(wù)和推出新版本

  • 在私有或公共云上運(yùn)行

  • 在最合適的服務(wù)器上放置和縮放服務(wù)的副本

  • 驗證服務(wù)的運(yùn)行狀況

  • 有狀態(tài)應(yīng)用程序的掛載卷

現(xiàn)在我們已經(jīng)復(fù)習(xí)了Kubernetes,讓我們跳到它的一些資源并討論何時使用它們。從pods開始。

Pods是什么?

pod是Kubernetes中應(yīng)用程序的最低或更原子的單元。需要注意的是,在Docker世界中,pod并不等于容器。一個pod可以由多個容器組成。如果您有純Docker背景,這可能很難理解。

可以將其看作Kubernetes抽象,它表示一組容器和它們的共享資源。例如,Pod可以包括一個帶有Node.js應(yīng)用程序的容器和另一個向web服務(wù)器提供數(shù)據(jù)的容器。

pod是表示集群中正在運(yùn)行的進(jìn)程的一種方法。

如果一個pod可以有多個容器,它是如何工作的?我們需要注意一些限制。pod有以下內(nèi)容:

  • 單一IP地址

  • 共享主機(jī)

  • 共享的IPC空間

  • 共享網(wǎng)絡(luò)端口范圍

  • 共享卷

pod中的容器通過本地主機(jī)相互通信,而pod-to-pod的通信是通過服務(wù)完成的。從圖中可以看到,pod中的容器共享一個IP地址。

Kubernetes資源類型的示例分析

pod是部署應(yīng)用程序的好方法,但是pod資源類型有一些限制。pod是單個實體,如果它失敗了,它就不能重新啟動自己。這并不適合大多數(shù)用例,因為我們希望應(yīng)用程序具有高可用性。

但是Kubernetes已經(jīng)解決了這個問題,我們將在文章中進(jìn)一步研究如何處理高可用性。

在Kubernetes中,pod總是在節(jié)點(diǎn)上運(yùn)行??梢詫⒐?jié)點(diǎn)看作由主服務(wù)器管理的工作機(jī)器。一個節(jié)點(diǎn)可以有多個pods,主節(jié)點(diǎn)會自動在一個節(jié)點(diǎn)上安排這些pods。

Pods原理

Pods被設(shè)計成一個運(yùn)行多個進(jìn)程的內(nèi)聚單元。這些進(jìn)程被包裝在容器中。組成pod的所有容器都運(yùn)行在同一臺機(jī)器上,不能跨多個節(jié)點(diǎn)拆分。

Pod中的所有進(jìn)程(或容器)共享相同的資源(例如存儲),它們可以通過本地主機(jī)彼此通信。卷就像具有可共享數(shù)據(jù)的目錄。所有容器都可以訪問它們并共享相同的數(shù)據(jù)。

Replication controller

我們剛剛得知pods是會死的。如果他們死了,那就是他們的結(jié)局。但是,如果您希望運(yùn)行同一版本的三個pod以獲得高可用性,該怎么辦呢?那就是replication  controller的作用了。

replication controller的主要職責(zé)是防止失敗。它位于pod資源類型之上并對其進(jìn)行控制。

這個功能處理了pods的這個問題。但是,需要注意的是,replication controller并不處理與pods相關(guān)的所有內(nèi)容,即生命周期。

假設(shè)我們想在不停機(jī)的情況下升級pod。replication controller將不負(fù)責(zé)此操作。

現(xiàn)在我們已經(jīng)了解了pods,讓我們進(jìn)入下一個Kubernetes資源: services。

什么是Services?

如果我們想要連接到pods,就需要創(chuàng)建一個Service。在Kubernetes中,Service是一組pods上的網(wǎng)絡(luò)抽象??梢詫⑵淇醋髟诩荷线\(yùn)行的一組pods。Kubernetes服務(wù)通常用于支持微服務(wù)體系結(jié)構(gòu)。

Kubernetes為一組pods提供了它們自己的IP地址和單個DNS名稱,并可以在它們之間實現(xiàn)負(fù)載平衡。它們提供了標(biāo)準(zhǔn)化集群的特性,例如:

  • 負(fù)載平衡

  • 零宕機(jī)的部署

  • 應(yīng)用程序之間的服務(wù)發(fā)現(xiàn)

它允許在出現(xiàn)故障時,對流量進(jìn)行負(fù)載平衡。一項服務(wù)允許Kubernetes為pods設(shè)置單一的DNS記錄。如前所述,每個pod都有一個單獨(dú)的IP地址。對于服務(wù)資源類型,你通常會像下面的例子一樣定義一個選擇器:

Kubernetes資源類型的示例分析

除此之外,kube-proxy還在集群中創(chuàng)建一個虛擬IP來訪問服務(wù)。然后,這個虛擬IP路由到pod IP。如果pod  ip更改或部署了新的pods,service資源類型將跟蹤更改,并代表您更新內(nèi)部路由。

Kubernetes資源類型的示例分析

deployments是什么?

現(xiàn)在是拼圖的最后一部分:deployments。deployments資源類型位于一個副本集(ReplicaSet)之上,可以對其進(jìn)行操作。換句話說,deployments為pods副本集提供更新。

為此,您需要在deployments中描述所需的狀態(tài),然后部署控制器將以可控的速度更改為所需的狀態(tài)。這允許您運(yùn)行無狀態(tài)應(yīng)用程序。如果需要進(jìn)行升級,則需要替換副本集。此操作將導(dǎo)致應(yīng)用程序停機(jī)。

Kubernetes資源類型的示例分析

Kubernetes的主要優(yōu)點(diǎn)之一是高可用性。deployment使我們能夠在不停機(jī)的情況下進(jìn)行升級。與在復(fù)制集中所做的一樣,指定要運(yùn)行的pods數(shù)量。

一旦觸發(fā)更新,deployment將對pods執(zhí)行滾動升級,同時確保每個pod的升級成功,然后再轉(zhuǎn)移到下一個。

讓我們看一個deployment示例,看看它們是如何創(chuàng)建的。

Kubernetes資源類型的示例分析

后一個命令的輸出如下所示。

Kubernetes資源類型的示例分析

那么,如果我們推出了一個新版本的應(yīng)用程序,但出現(xiàn)了錯誤,會發(fā)生什么情況呢?deployment也有解決方法,我們可以很容易地回滾部署。

這里有一個警告:如果您正在使用pvc(持久卷聲明)并在聲明中寫入了一些內(nèi)容。這是不會逆轉(zhuǎn)的。

Deployment控制ReplicaSet,而ReplicaSet控制Pods。因此,在使用Deployment資源類型時,您仍然需要一個Service來訪問它。

Kubernetes資源類型的示例分析

感謝各位的閱讀!關(guān)于“Kubernetes資源類型的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

文章題目:Kubernetes資源類型的示例分析
本文來源:http://muchs.cn/article14/pidsde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、云服務(wù)器、ChatGPT、移動網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站、小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化