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

K8S 無狀態(tài)和有狀態(tài),初學(xué)者指南!

云計(jì)算
Kubernetes 提供稱為 Pod 的基本資源。Pod 是 Kubernetes 中最小的可部署單元,它實(shí)際上是容器的包裝器。它可以有一個(gè)或多個(gè)容器,共享存儲/網(wǎng)絡(luò),以及如何運(yùn)行容器的規(guī)范。

Kubernetes 是一個(gè)開源編排系統(tǒng),用于自動部署、擴(kuò)展和管理容器化應(yīng)用程序。

有關(guān) Kubernetes 的詳細(xì)信息,請查看 Kubernetes 指南:https://devtron.ai/blog/developers-guide-to-kubernetes/。

Kubernetes 提供稱為 Pod 的基本資源。Pod 是 Kubernetes 中最小的可部署單元,它實(shí)際上是容器的包裝器。它可以有一個(gè)或多個(gè)容器,共享存儲/網(wǎng)絡(luò),以及如何運(yùn)行容器的規(guī)范。

Pod 被認(rèn)為是短暫的實(shí)體。如果 pod 被調(diào)度到的節(jié)點(diǎn)死亡,那么該 pod 將在超時(shí)后被刪除重新調(diào)度。

一個(gè) pod 代表 Kubernetes 中的一個(gè)單元。對于水平擴(kuò)展(例如運(yùn)行多個(gè)實(shí)例),應(yīng)用程序需要多個(gè) pod。復(fù)制 pod 以實(shí)現(xiàn)水平縮放。復(fù)制的 pod 是通過Controllers創(chuàng)建和管理的。

用于 Pod 副本管理的 Controller

1. Deployment

Deployment 是部署應(yīng)用程序最簡單和最常用的資源。它管理 ReplicaSet 的部署。您可以定義 Deployment 以更新、創(chuàng)建新的 ReplicaSet 或刪除現(xiàn)有部署。Deployment 的主要作用是為 pod 和 ReplicaSet 提供聲明式更新。

Deployment 可幫助您實(shí)現(xiàn)以下目標(biāo):

  • 推出 ReplicaSet —它將在后臺創(chuàng)建 pod。您可以檢查推出的狀態(tài)以檢查它是否成功。
  • 聲明 pod 的新狀態(tài) —您可以更新部署清單的 PodTemplateSpec。一個(gè)新的 ReplicaSet 被創(chuàng)建,部署以受控的速率將 Pod 從舊的 ReplicaSet 移動到新的 ReplicaSet?,F(xiàn)在,每個(gè)新的 ReplicaSet 都將具有部署的更新版本。
  • 回滾到較早的部署修訂版——如果由于某些情況,當(dāng)前狀態(tài)不穩(wěn)定,則可以將部署回滾到較早的部署修訂版。

Deployment 不提供什么?

  • 它不為 pod 提供標(biāo)識符。
  • 它不為 pods 提供存儲,因此它僅用于無狀態(tài)應(yīng)用程序(那些不關(guān)心正在使用哪個(gè)網(wǎng)絡(luò),并且不需要任何永久存儲的應(yīng)用程序。例如,Apache、Nginx、Tomcat 等 Web 服務(wù)器)。

2. StatefulSet

它是一種 Kubernetes 資源,用于管理有狀態(tài)的應(yīng)用程序。它管理一組 Pod 的部署和擴(kuò)展,并提供 Pod 的順序和唯一性的保證。

與 Deployment 不同,StatefulSet 為每個(gè) pod 維護(hù)一個(gè)身份。每個(gè) pod 都有一個(gè)持久標(biāo)識符,它在任何調(diào)度中都保持不變。

例如,如果您創(chuàng)建一個(gè)名稱為flag的 StatefulSet,它將創(chuàng)建一個(gè)名稱為 flag-0 的 pod,并且對于 StatefulSet 的多個(gè)副本,pod 名稱將遞增,如 flag-0、flag-1、flag- 2 等。

每個(gè)節(jié)點(diǎn)都有自己的Persistent Volume。如果刪除或縮小 pod,與它們關(guān)聯(lián)的卷將不會被刪除,因此數(shù)據(jù)會保留。

Deployment 和 StatefulSet 中存儲卷的區(qū)別

  • Deployment:它用于“無狀態(tài)應(yīng)用程序”。卷 (PVC) 在 pod 之間共享。由于共享的卷中沒有數(shù)據(jù),因此會導(dǎo)致數(shù)據(jù)泄露問題。
  • StatefulSet:用于“有狀態(tài)的應(yīng)用程序”。PVC 將在其中存儲信息,這將導(dǎo)致所有 pod 之間的信息共享。

在 Deployment 和 StatefulSet 中使用 PVC

在訪問模式的幫助下,PVC 可以跨 Deployment 和 StatefulSet 使用。有 3 種訪問模式,即:

  • ReadWriteOnce:將卷掛載為單個(gè)節(jié)點(diǎn)的讀寫。
  • ReadOnlyMany:將卷以只讀方式安裝到許多節(jié)點(diǎn)。
  • ReadWriteMany:將卷掛載為許多節(jié)點(diǎn)的讀寫。

Deployment

當(dāng)為 Deployment 指定 PVC 時(shí),它會在所有副本 pod 之間共享。在這種情況下,PVC 必須具有 ReadWriteMany 或 ReadOnlyMany 訪問模式(ReadWriteMany 很少見,只有少數(shù)存儲提供商支持)。

如果使用 ReadWriteOnce 訪問模式創(chuàng)建 PVC,然后嘗試創(chuàng)建運(yùn)行一個(gè)有狀態(tài)應(yīng)用程序,可以正常工作。如果橫向擴(kuò)容,當(dāng)一個(gè)新的 pod 啟動時(shí),會收到一個(gè)錯(cuò)誤,指出該卷已在使用中。

因此,在這種情況下,最好使用只讀卷來避免錯(cuò)誤。

StatefulSet

當(dāng)為 StatefulSet 指定 PVC 時(shí),必須確保 PVC 具有ReadWriteOnce訪問模式。

使用 StatefulSet,定義一個(gè) VolumeClaimTemplate,會自動為每個(gè)副本創(chuàng)建一個(gè) PVC。

另一個(gè)好處是,將擁有一個(gè)定義應(yīng)用程序和持久卷的文件。它將進(jìn)一步增強(qiáng)應(yīng)用程序的可擴(kuò)展性。

原文:https://medium.com/container-talks/kubernetes-deployment-vs-statefulset-what-you-need-to-know-1a281e1d3c2c

責(zé)任編輯:趙寧寧 來源: 進(jìn)擊云原生
相關(guān)推薦

2022-04-24 15:21:01

MarkdownHTML

2021-05-10 08:50:32

網(wǎng)絡(luò)管理網(wǎng)絡(luò)網(wǎng)絡(luò)性能

2022-03-28 09:52:42

JavaScript語言

2023-07-28 07:31:52

JavaScriptasyncawait

2023-07-03 15:05:07

預(yù)測分析大數(shù)據(jù)

2010-06-13 11:13:38

UML初學(xué)者指南

2022-07-22 13:14:57

TypeScript指南

2024-04-30 11:14:19

KubernetesReplicaSet數(shù)量

2012-03-14 10:56:23

web app

2022-10-10 15:28:45

負(fù)載均衡

2023-02-10 08:37:28

2024-05-30 11:53:51

2022-09-05 15:36:39

Linux日志記錄syslogd

2023-10-16 07:04:03

2013-03-06 10:40:58

Adobe Edge HTML5

2010-08-26 15:47:09

vsftpd安裝

2013-04-08 16:35:52

Adobe Edge

2018-10-28 16:14:55

Reactreact.js前端

2011-03-02 10:57:27

vsFTPd

2023-02-19 15:31:09

架構(gòu)軟件開發(fā)代碼
點(diǎn)贊
收藏

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