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

三種Kubernetes資源類型的使用指南

開發(fā) 前端
第一次開始Kubernetes之旅,您需要學(xué)習(xí)的第一件事就是如何部署應(yīng)用程序。這里,我們可以使用多種資源類型,包括pods、deployments和services。

第一次開始Kubernetes之旅,您需要學(xué)習(xí)的第一件事就是如何部署應(yīng)用程序。這里,我們可以使用多種資源類型,包括pods、deployments和services。

[[380753]]

本文,我們將首先解釋每種資源類型的作用,然后討論何時以及為什么在應(yīng)用程序中使用它們,以下是內(nèi)容要點前瞻:

快速復(fù)習(xí)一下Kubernetes

pods是什么?

什么是services?

deployments是什么?

接下來要學(xué)什么

快速復(fù)習(xí)一下Kubernetes

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

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

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

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

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

  • 在不停機的情況下部署服務(wù)和推出新版本
  • 在私有或公共云上運行
  • 在最合適的服務(wù)器上放置和縮放服務(wù)的副本
  • 驗證服務(wù)的運行狀況
  • 有狀態(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是表示集群中正在運行的進程的一種方法。

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

  • 單一IP地址
  • 共享主機
  • 共享的IPC空間
  • 共享網(wǎng)絡(luò)端口范圍
  • 共享卷

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

 

三種Kubernetes資源類型的使用指南

 

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

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

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

Pods原理

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

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

Replication controller

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

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

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

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

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

什么是Services?

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

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

  • 負(fù)載平衡
  • 零宕機的部署
  • 應(yīng)用程序之間的服務(wù)發(fā)現(xiàn)

它允許在出現(xiàn)故障時,對流量進行負(fù)載平衡。一項服務(wù)允許Kubernetes為pods設(shè)置單一的DNS記錄。如前所述,每個pod都有一個單獨的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)之上,可以對其進行操作。換句話說,deployments為pods副本集提供更新。

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

 

三種Kubernetes資源類型的使用指南

 

Kubernetes的主要優(yōu)點之一是高可用性。deployment使我們能夠在不停機的情況下進行升級。與在復(fù)制集中所做的一樣,指定要運行的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資源類型的使用指南

 

接下來要學(xué)什么

 

恭喜!現(xiàn)在您已經(jīng)了解了pods、services和deployments的基礎(chǔ)知識。您已經(jīng)熟悉了它們的用途、優(yōu)缺點。要掌握Kubernetes并理解它為您的應(yīng)用程序提供的所有功能,還需要學(xué)習(xí)很多東西......

 

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

2021-01-12 15:19:23

Kubernetes

2023-10-25 14:51:38

MySQL數(shù)據(jù)庫JSON

2011-01-18 15:35:59

jQueryJavaScriptweb

2022-09-23 17:26:04

VeleroKubernetes

2023-03-07 08:25:39

探針Kubernetes

2022-02-14 11:48:44

KubernetesDescheduleLinux

2010-03-19 17:30:07

無線局域網(wǎng)設(shè)備類型

2023-10-13 00:00:00

Redis模塊空間對象

2022-09-29 09:07:08

DataGrip數(shù)據(jù)倉庫數(shù)據(jù)庫

2022-06-09 11:52:40

KubernetesOpenEBSLinux

2021-09-24 09:00:00

MySQL數(shù)據(jù)庫SQL

2022-06-20 08:50:16

TypeScript類型語法

2009-08-06 15:26:18

C#異常類型

2022-07-05 15:50:25

Kubernetes工具DevOps

2010-09-09 10:43:56

VPN服務(wù)

2009-06-29 18:21:29

Hibernate

2010-05-11 14:08:50

MySQL數(shù)字類型

2009-12-10 15:46:22

動態(tài)路由協(xié)議

2012-12-26 12:41:14

Android開發(fā)WebView

2018-12-13 20:14:18

物聯(lián)網(wǎng)平臺物聯(lián)網(wǎng)IOT
點贊
收藏

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