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

Kubernetes中的多容器 Pod 設計模式

譯文
云計算
在Kubernetes中,Pod是一個可部署單元。如果要部署應用程序,它必須將Pod作為容器部署在Pod中。盡管應用程序可以在容器中運行,但容器必須是Pod的一部分。Pod規(guī)范具有聲明容器規(guī)范的屬性容器。這個屬性是復數的。這意味著可以在Pod規(guī)范中聲明多個容器。

[[436040]]

【51CTO.com快譯】Pod

在Kubernetes中,Pod是一個可部署單元。如果要部署應用程序,它必須將Pod作為容器部署在Pod中。盡管應用程序可以在容器中運行,但容器必須是Pod的一部分。Pod規(guī)范具有聲明容器規(guī)范的屬性容器。這個屬性是復數的。這意味著可以在Pod規(guī)范中聲明多個容器。

多容器設計考慮

但是Kubernetes管理員總是選擇單一容器Pod而不是多容器Pod。每個Pod采用一個容器是行業(yè)中的一人不成文做法。以下了解多容器Pod可以提供什么優(yōu)勢。

Pod有一個IP,而一個Pod中的所有容器可以共享相同的IP。如果為Pod創(chuàng)建了任何卷,則作為Pod一部分的所有容器都可以安裝該卷。因此,容器可以共享存儲空間,它們還可以通過本地主機相互通信。

在這種情況下,為什么仍然首選單一容器Pod。以具有用戶界面(UI)、后端、數據庫和消息傳遞層的Web應用程序為例。將所有四個層部署為單個Pod中的四個容器。所有四個容器的資源、配置、操作要求都不同。后端和前端是面向客戶的。如果需要將這些擴展到不同的層次,則不能單獨完成,由于不能擴展容器,只能擴展Pod。因此,如果擴展Pod,也會創(chuàng)建數據庫和消息層的多個實例,盡管這不是必需的。

因此,最好將它們分開部署,因為像單獨的一個Pod一樣管理和擴展它們會更好。

在什么情況下,可以在同一個Pod中使用多個容器?

情況1–如果容器的生命周期相同。

情況2–如果兩個容器高度耦合。

情況3–如果需要使應用程序無需任何代碼更改即可部署到Kubernetes。在這種情況下,應用程序代碼缺乏利用Kubernetes功能的東西。在這種情況下,可以在應用程序容器中引入一個輔助容器,這將打破這種障礙。

多容器設計模式

1.適配器模式

如今的家庭通常采用的是交流電,而人們使用的筆記本電腦使用的是直流電。在這種情況下,使用交流適配器從插座獲取電源,然后將其轉換為直流電并為筆記本電腦供電。在不改變供電模式的情況下,可以借助適配器為筆記本電腦充電。

那么如何將這種模式與Kubernetes有什么聯系?例如,如果在Kubernetes集群中安裝了一個集中監(jiān)控工具,它需要將所有應用日志以“應用程序(APP)-名稱(NAME)-主機名稱(HOSTNAME)-日期(DATE)-嚴重程度(SEVERITY)”格式打印。但是集群可以有許多應用程序以多種語言編寫,并以多種格式打印日志。在這種情況下,所有應用程序都更改其日志記錄格式是不明智的,就好像該工具將來會更改并且格式可能再次更改一樣。為了解決這個問題,可以生成第二個容器來讀取主要應用程序容器的日志,并將其處理成監(jiān)控工具所需的格式。這樣可以解決不匹配的問題。

2.大使模式

大使是各國派駐他國的特使。這種模式如何在Kubernetes Pod提供幫助?

例如,如果有一個遺留應用程序,其中DB URL在應用程序內被硬編碼為localhost。更改遺留應用程序很困難,因為它會在許多其他地方帶來更改。如果必須使其可在Kubernetes集群中部署,則需要更改代碼??梢允褂么笫鼓J皆诓桓拇a的情況下做到這一點。大使容器將應用程序容器共置在同一個Pod中。它是一個代理,根據開發(fā)、質量保證(QA)或Stage環(huán)境連接到正確的數據庫。

主應用程序可以通過大使容器連接到諸如localhost之類的外部URL。大使模式找到正確的URL,并將其提供給位于localhost的應用程序容器。主應用程序容器不需要擔心正確的URL。這將被分配給大使容器。

3.邊車模式

邊車(Sidecar)的原理與挎斗摩托車類似,挎斗摩托車只是增加了一個座位,而沒有對其主要部署進行任何更改,雖然這個座位不是摩托車的組成部分,但增強了性能。Sidecar容器也采用同樣的工作方式。邊車增強了與它一起部署的主容器的能力,而無需對主容器進行任何更改。例如,應用程序在某個文件夾中生成日志文件。

如果在Kubernetes集群中采用應用程序監(jiān)控工具,需要將所有部署到集群的應用程序的日志存儲在某個外部存儲空間中,那么在應用程序級別根本無法完成。相反,可以使用一個邊車容器,它可以輕松地將日志文件存儲在所需的存儲空間中,而無需在主應用程序級別進行任何代碼更改。

結論

所有這些模式對于在不更改主要應用程序的情況下執(zhí)行橫切作業(yè)非常有用。它們?yōu)橹魅萜魈峁┲С郑⑶冶仨氉鳛檩o助容器進行部署。這些工作負載必須以可以在不同Pod中重用的方式編寫。

為了解釋這種方法,使用適配器模式,必須將主容器的輸出轉換或處理為某種標準格式;大使模式用于提供網絡代理;邊車模式用于向主容器提供幫助程序/實用程序服務。

而人們嘗試使用這些模式可以充分利用Kubernetes集群。

原文連接:Multi-Container Pod Design Patterns in Kubernetes,作者:Aditya Bhuyan

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:華軒 來源: 51CTO
相關推薦

2019-11-20 09:15:53

KubernetesPod

2022-06-01 09:38:36

KubernetesPod容器

2020-07-06 07:52:10

Kubernetes網絡通信

2024-01-02 09:19:15

kubernetes集群HTTP

2023-02-09 16:47:34

KubernetesPod優(yōu)先級

2021-09-14 13:25:23

容器pod僵尸進程

2020-04-10 08:00:08

Kubernetes補丁pod

2024-03-07 12:08:02

Podkubernetes容器

2022-09-22 12:11:38

PodKubernetes

2022-06-21 14:46:52

KubernetesPODMultus

2023-10-19 19:42:25

IstioPodkubernetes

2017-06-13 16:40:42

Azure容器Kubernetes

2024-06-19 09:33:05

2012-08-30 09:07:33

設計模式

2010-06-11 14:55:20

2021-06-28 10:20:31

網絡技術Kubernetes通信

2021-04-18 21:07:32

門面模式設計

2024-07-31 08:12:33

2023-09-18 08:00:00

Kubernetes容器集群

2020-11-10 10:08:41

Kubernetes容器開發(fā)
點贊
收藏

51CTO技術棧公眾號