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

構(gòu)建Kubernetes集群應(yīng)該有幾個?優(yōu)缺點是什么?

開發(fā) 前端
如果使用Kubernetes,會遇到一些有關(guān)使用集群方式的基本問題,比如應(yīng)該有幾個集群?它們應(yīng)該多大?應(yīng)該包含什么?

如果使用Kubernetes,會遇到一些有關(guān)使用集群方式的基本問題,比如應(yīng)該有幾個集群?它們應(yīng)該多大?應(yīng)該包含什么?

集群分析

在不同的應(yīng)用開發(fā)環(huán)境中,你通常會開發(fā)和運行多個應(yīng)用程序。此外,通常在不同的環(huán)境中運行這些應(yīng)用程序的多個實例,比如你可能用開發(fā)環(huán)境,測試環(huán)境和生產(chǎn)環(huán)境。

于是,這將導(dǎo)致應(yīng)用程序和環(huán)境組成不同的交集。在下面的示例中,有3個應(yīng)用程序和3個環(huán)境,產(chǎn)生了9個應(yīng)用程序的實例。每個應(yīng)用程序?qū)嵗际且粋€可獨立運行的獨立部署單元。

請注意,一個應(yīng)用程序?qū)嵗赡苡啥鄠€組件組成,如前端,后端,數(shù)據(jù)庫等。在微服務(wù)應(yīng)用程序中,一個應(yīng)用程序?qū)嵗龑⒂伤形⒎?wù)組件構(gòu)成。

作為Kubernetes的用戶,一些問題會引發(fā)你的思考。是否應(yīng)該在單個群集上運行所有應(yīng)用程序?qū)嵗?還是應(yīng)該為每個應(yīng)用程序?qū)嵗加幸粋€單獨的集群?還是應(yīng)該結(jié)合使用呢?

下面是一些你可以選擇選項:

  • 一個大型共享集群
  • 許多小型一次性集群
  • 每個應(yīng)用程序的集群
  • 每個環(huán)境的集群

前兩種方法是從幾個大型集群到多個小型集群的規(guī)模極限,如下圖所示:

構(gòu)建Kubernetes集群應(yīng)該有幾個?優(yōu)缺點是什么?

通常,如果集群包含更大的節(jié)點和Pod之和,則可以將其定義為“更大”。例如,具有10個節(jié)點和100個Pods的集群大于包含1個節(jié)點和10個Pods的集群。

一個大型共享集群

第一種選擇是在同一集群中運行所有工作負載。通過這種方法,可以像通用基礎(chǔ)架構(gòu)平臺一樣使用這個集群。無論需要運行什么,都可以將其部署到現(xiàn)有的Kubernetes集群中。

構(gòu)建Kubernetes集群應(yīng)該有幾個?優(yōu)缺點是什么?

Kubernetes提供了命名空間,以在邏輯上將集群的各個部分彼此分開,在上述情況下,可以為每個應(yīng)用程序?qū)嵗褂脝为毜拿臻g。

優(yōu)點:有效利用資源

如果只有一個Kubernetes集群,則只需擁有運行和管理Kubernetes集群所需的所有資源的一個副本。

例如,這包括主節(jié)點,一個Kubernetes集群通常有3個主節(jié)點,如果只有一個集群,則總共只需要3個主節(jié)點(如果有10個Kubernetes集群,則只有30個主節(jié)點)。

但這還包括其他集群范圍的服務(wù),例如負載均衡,入口控制器,身份驗證,日志記錄和監(jiān)控。

如果只有一個集群,則可以為所有工作負載重用這些服務(wù),并且不必為多個集群擁有多個服務(wù)副本。

優(yōu)點:低成本

較少的集群通常成本更低,因為集群數(shù)量多,資源開銷越多。對于主節(jié)點而言尤其如此,這可能會花費大量的費用,無論是在本地還是在云中。

一些托管的Kubernetes服務(wù)免費提供了Kubernetes控制平臺,如谷歌GKE或Azure的AKS,所以在這種情況下,成本效益不是問題。

但是,還有托管的Kubernetes服務(wù),它們?yōu)檫\行Kubernetes集群收取固定的費用,例如AWS的EKS。

優(yōu)點:高效管理

管理單個集群比管理多個集群容易。這可能包括以下任務(wù):升級Kubernetes版本,設(shè)置CI/CD管道,安裝CNI插件,設(shè)置用戶認證系統(tǒng),安裝準(zhǔn)入控制器。

如果只有一個集群,則只需完成一次。如果有許多集群,那么需要多次應(yīng)用所有內(nèi)容,這可能需要開發(fā)一些自動化的流程和工具,才能始終如一地做到這一點。

缺點:單點故障

如果只有一個集群并且集群發(fā)生故障,那么所有工作負載都將出問題。還有許多操作可能會導(dǎo)致故障,比如Kubernetes升級,集群范圍內(nèi)的組件(例如CNI插件)無法正常工作,對集群組件進行了錯誤的配置,基礎(chǔ)架構(gòu)發(fā)生故障。所以,如果只有一個共享集群,則可能會對所有工作負載造成影響。

缺點:沒有硬安全隔離

如果多個應(yīng)用程序在同一個Kubernetes集群中運行,所以這些應(yīng)用程序在集群的節(jié)點上共享硬件,網(wǎng)絡(luò)和操作系統(tǒng)。具體而言,在同一節(jié)點上運行的兩個不同應(yīng)用程序的兩個容器在技術(shù)上是在相同硬件和操作系統(tǒng)內(nèi)核上運行的兩個進程。

Linux容器提供某種形式的隔離,但是這種隔離不如虛擬機提供的隔離強。在后臺,容器中的進程仍然只是在主機操作系統(tǒng)上運行的進程。從安全角度來看,這可能是一個問題。從理論上講,它允許無關(guān)的應(yīng)用程序產(chǎn)生意外的交互。

此外,所有在Kubernetes集群共享某些集群范圍的服務(wù),如工作負載DNS,這使得應(yīng)用可發(fā)現(xiàn)集群中的其他應(yīng)用程序的服務(wù)。

所以,這些問題可能是否會出現(xiàn)問題,具體取決于應(yīng)用程序的安全要求。

Kubernetes提供了各種防止安全漏洞的方法,例如PodSecurityPolicies和NetworkPolicies,但是,它需要經(jīng)驗來以完全正確的方式來調(diào)整這些工具,并且它們也不能防止所有的安全漏洞。

而且,Kubernetes是為共享而設(shè)計的,而不是為了隔離和安全而設(shè)計的。

缺點:多租戶資源侵占

Kubernetes集群中有許多共享資源,不同的應(yīng)用程序可以通過多種方式侵占資源。比如,一個應(yīng)用程序可能會占據(jù)某個共享資源(例如CPU或內(nèi)存),從而使同一節(jié)點上運行的其他應(yīng)用程序無法運行。

Kubernetes提供了多種方法來控制這種行為,例如資源請求和限制,ResourceQuotas和LimitRanges。但是,以完全正確的方式調(diào)整這些工具并不是一件容易的事,它們也無法防止所有不必要的副作用。

缺點:用戶權(quán)限復(fù)雜

如果只有一個集群,則企業(yè)中的許多人必須有權(quán)訪問集群。用戶使用系統(tǒng)的機會越多,破壞的風(fēng)險就越高。在集群中,你可以控制哪些人可以使用基于角色的訪問控制(RBAC)進行操作。但是,這仍然不能防止用戶破壞其授權(quán)范圍內(nèi)的某些行為。

缺點:集群不能無限大

如果將單個群集用于所有工作負載,則集群可能會很大(就節(jié)點和Pods而言)。但是,Kubernetes集群不能無限增長。

對于集群的大小,存在一些理論上限,Kubernetes大約在5000個節(jié)點,150000個Pods和300000個容器的定義。但是,實際上,使用較小的集群大小(例如500個節(jié)點)可能已經(jīng)出現(xiàn)了挑戰(zhàn)。

原因是較大的集群對Kubernetes控制平面施加了更高的壓力,這需要仔細計劃來保持集群的功能和效率。

許多小型一次性集群

使用這種方法,可以為每個部署單元使用單獨的Kubernetes集群(本文中,部署單元是一個應(yīng)用程序?qū)嵗?,例如單個應(yīng)用程序的開發(fā)版本),通過這種策略,Kubernetes專用于各個應(yīng)用程序?qū)嵗?/p>

優(yōu)點:故障半徑減小

如果集群發(fā)生故障,則損害僅限于這個集群上運行的工作負載,而其他所有工作負載均不受影響。

優(yōu)點:隔離

在各個集群中運行的工作負載不會共享任何資源,例如CPU,內(nèi)存,操作系統(tǒng),網(wǎng)絡(luò)或其他服務(wù)。

這樣可以在不相關(guān)的應(yīng)用程序之間提供強大的隔離,這對于這些應(yīng)用程序的安全性是一大優(yōu)勢。

優(yōu)點:很少的用戶

如果每個集群僅運行一組工作負載,則需要訪問該集群的人數(shù)將減少。訪問集群的人越少,發(fā)生故障的風(fēng)險越低。

缺點:資源利用效率低

如前所述,每個Kubernetes集群都需要一組管理資源,例如主節(jié)點,控制平面組件,監(jiān)控和日志記錄解決方案。如果有許多小型集群,則必須為這些管理功能犧牲更高的總資源。

缺點:成本高

資源使用效率低下會自動導(dǎo)致更高的成本。如果必須運行30個主節(jié)點而不是3個主節(jié)點才能獲得相同的計算能力,那么成本高是必然的。

缺點:綜合管理

管理許多Kubernetes集群比管理單個Kubernetes集群更為復(fù)雜。比如需要為每個集群設(shè)置身份驗證和授權(quán),如果要升級Kubernetes版本,則也需要執(zhí)行多次。你可能需要開發(fā)一些自動化工具。

每個應(yīng)用程序的集群

使用這種方法,可以為特定應(yīng)用程序的所有實例創(chuàng)建一個單獨的集群??梢詫⑵湟暈槊總€團隊負責(zé)集群的范圍,因為通常一個團隊會開發(fā)一個或多個應(yīng)用程序。

構(gòu)建Kubernetes集群應(yīng)該有幾個?優(yōu)缺點是什么?

優(yōu)點:可以為應(yīng)用程序定制集群

如果應(yīng)用程序有特定要求,則可以將這些要求安裝在集群中,而不會影響任何其他集群。這樣的要求可能包括工作節(jié)點,某個CNI插件,服務(wù)網(wǎng)格或任何其他服務(wù)。每個群集都可以完全配備相應(yīng)應(yīng)用程序所需的配置。

缺點:同一集群中的不同環(huán)境

這種方法的缺點是來自不同環(huán)境的應(yīng)用程序?qū)嵗谕蝗杭羞\行。例如,應(yīng)用程序的生產(chǎn)版本與開發(fā)版本在同一集群中運行,這也意味著開發(fā)人員在與應(yīng)用程序的生產(chǎn)版本相同的集群中工作。所以,如果一個開發(fā)人員或開發(fā)版本創(chuàng)建集群中的一些損壞,生產(chǎn)版本可能也受到影響。

每個環(huán)境的集群

使用這種方法,可以為每個環(huán)境創(chuàng)建一個單獨的集群。例如,可以擁有一個開發(fā),測試和生產(chǎn)集群,在其中運行特定環(huán)境的所有應(yīng)用程序?qū)嵗?/p>

構(gòu)建Kubernetes集群應(yīng)該有幾個?優(yōu)缺點是什么?

優(yōu)點:產(chǎn)品環(huán)境的隔離

通常,這種將所有環(huán)境相互隔離,但是實際上,這對于產(chǎn)品環(huán)境尤其重要?,F(xiàn)在,應(yīng)用的生產(chǎn)版本不受任何其他集群和應(yīng)用環(huán)境中發(fā)生的任何事情的影響。

因此,如果某些配置錯誤在開發(fā)集群中造成破壞,則應(yīng)用程序的生產(chǎn)版本將繼續(xù)運行。

優(yōu)點:可以針對環(huán)境定制集群

可以針對每個集群的環(huán)境進行優(yōu)化,比如,在開發(fā)集群中安裝開發(fā)和調(diào)試工具;在測試集群中安裝測試框架和工具;對產(chǎn)品集群使用更強大的硬件和網(wǎng)絡(luò)連接;可以提高應(yīng)用程序的開發(fā)和運行效率。

優(yōu)點:鎖定對生產(chǎn)集群的訪問

沒有人需要在生產(chǎn)集群上進行開發(fā)工作,因此可以限制對其的訪問。甚至可以根本不向任何人授予對生產(chǎn)集群的訪問權(quán)限,可以通過自動CI/CD工具對該集群進行部署。這將極大地減少生產(chǎn)集群中人為錯誤的風(fēng)險。

缺點:應(yīng)用之間缺乏隔離

主要缺點是應(yīng)用之間缺少硬件和資源隔離。不相關(guān)的應(yīng)用程序共享集群資源,例如操作系統(tǒng)內(nèi)核,CPU,內(nèi)存和其他一些服務(wù)。這可能有潛在的安全問題。

缺點:應(yīng)用要求未本地化

如果應(yīng)用程序有特殊要求,則所有集群中都必須滿足這些要求。如一個應(yīng)用程序需要一個GPU,則每個集群必須至少有一個GPU工作節(jié)點,即使它僅由一個應(yīng)用程序使用。這可能會導(dǎo)致成本增加和資源使用效率低。

 

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

2011-06-20 08:47:05

云計算私有云虛擬化

2011-06-21 19:30:26

云計算私有云Gartner

2023-05-17 11:07:08

2024-08-06 10:40:34

2011-01-04 09:54:41

Windows 8

2015-03-20 08:53:47

AndroidBUG修復(fù)

2015-03-20 10:18:10

AndroidAndroid bug

2019-01-07 09:00:53

Kubernetes容器公共云

2020-07-22 14:45:20

2019-10-24 15:11:10

數(shù)據(jù)分析PythonFineBI

2021-03-11 10:24:58

Kubernetes混合云云平臺

2020-07-16 21:00:05

樹莓派Kubernetes集Linux

2022-11-02 08:41:40

2011-09-13 09:35:37

SQL Server集群

2020-08-10 00:17:40

物聯(lián)網(wǎng)傳感器

2022-02-04 23:26:56

iOS系統(tǒng)蘋果

2009-11-23 14:02:39

服務(wù)器虛擬化集群

2009-09-01 10:00:55

Tomcat集群方式

2024-08-27 08:29:49

2022-07-21 11:11:28

人工智能醫(yī)療科學(xué)
點贊
收藏

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