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

探索Kubernetes的高可用性:?jiǎn)蜯aster集群和多Master節(jié)點(diǎn)集群方案

云計(jì)算 云原生
一般情況下我們會(huì)搭建單Master多node集群。它是一種常見(jiàn)的 K8s 集群架構(gòu),它只有一個(gè) Master 節(jié)點(diǎn)和多個(gè) Node 節(jié)點(diǎn)。這種架構(gòu)的優(yōu)點(diǎn)是簡(jiǎn)單易搭建,適合用于學(xué)習(xí)和測(cè)試 K8s 的功能和特性。這種架構(gòu)的缺點(diǎn)是 Master 節(jié)點(diǎn)成為了單點(diǎn)故障,如果 Master 節(jié)點(diǎn)出現(xiàn)問(wèn)題,那么整個(gè)集群就無(wú)法正常工作。

一、單Master集群

k8s 集群是由一組運(yùn)行 k8s 的節(jié)點(diǎn)組成的,節(jié)點(diǎn)可以是物理機(jī)、虛擬機(jī)或者云服務(wù)器。k8s 集群中的節(jié)點(diǎn)分為兩種角色:master 和 node。

  • master 節(jié)點(diǎn):master 節(jié)點(diǎn)負(fù)責(zé)控制和管理整個(gè)集群,它運(yùn)行著一些關(guān)鍵的組件,如 kube-apiserver、kube-scheduler、kube-controller-manager 等。master 節(jié)點(diǎn)可以有一個(gè)或多個(gè),如果有多個(gè) master 節(jié)點(diǎn),那么它們之間需要通過(guò) etcd 這個(gè)分布式鍵值存儲(chǔ)來(lái)保持?jǐn)?shù)據(jù)的一致性。
  • node 節(jié)點(diǎn):node 節(jié)點(diǎn)是承載用戶(hù)應(yīng)用的工作節(jié)點(diǎn),它運(yùn)行著一些必要的組件,如 kubelet、kube-proxy、container runtime 等。node 節(jié)點(diǎn)可以有一個(gè)或多個(gè),如果有多個(gè) node 節(jié)點(diǎn),那么它們之間需要通過(guò)網(wǎng)絡(luò)插件來(lái)實(shí)現(xiàn)通信和路由。

一般情況下我們會(huì)搭建單master多node集群。它是一種常見(jiàn)的 k8s 集群架構(gòu),它只有一個(gè) master 節(jié)點(diǎn)和多個(gè) node 節(jié)點(diǎn)。這種架構(gòu)的優(yōu)點(diǎn)是簡(jiǎn)單易搭建,適合用于學(xué)習(xí)和測(cè)試 k8s 的功能和特性。這種架構(gòu)的缺點(diǎn)是 master 節(jié)點(diǎn)成為了單點(diǎn)故障,如果 master 節(jié)點(diǎn)出現(xiàn)問(wèn)題,那么整個(gè)集群就無(wú)法正常工作。

搭建 k8s 單 master 多 node 集群有多種方法,根據(jù)不同的需求和場(chǎng)景,可以選擇合適的方式來(lái)搭建和運(yùn)維node集群。一般來(lái)說(shuō),有以下幾種常見(jiàn)的方式:

  • 使用kubeadm:這是一種使用官方提供的工具kubeadm來(lái)快速創(chuàng)建和管理node集群的方式。kubeadm可以自動(dòng)安裝和配置node節(jié)點(diǎn)上所需的組件,如kubelet、kube-proxy、容器運(yùn)行時(shí)等。這種方式適用于學(xué)習(xí)和測(cè)試目的,或者簡(jiǎn)單的生產(chǎn)環(huán)境。
  • 使用kops:這是一種使用開(kāi)源工具kops來(lái)在云服務(wù)商(如AWS、GCP等)上創(chuàng)建和管理node集群的方式。kops可以自動(dòng)創(chuàng)建和配置云資源,如虛擬機(jī)、網(wǎng)絡(luò)、存儲(chǔ)等,并安裝和配置node節(jié)點(diǎn)上所需的組件。這種方式適用于在云端部署高可用和可擴(kuò)展的node集群。
  • 使用其他工具或平臺(tái):這是一種使用其他第三方提供的工具或平臺(tái)來(lái)創(chuàng)建和管理node集群的方式。例如,你可以使用Ansible、Terraform、Rancher等工具來(lái)自動(dòng)化和定制node集群的創(chuàng)建和配置過(guò)程?;蛘?,你可以使用云服務(wù)商提供的托管服務(wù)(如EKS、GKE、AKS等)來(lái)直接創(chuàng)建和管理node集群。這種方式適用于不同的需求和偏好,但可能需要更多的學(xué)習(xí)和調(diào)試成本。

二、多Master集群

通常情況下如果只有一個(gè)master節(jié)點(diǎn),那么一旦它出現(xiàn)故障或者不可用,那么整個(gè)集群就會(huì)失去控制,無(wú)法進(jìn)行任何操作。因此,為了保證集群的高可用性,需要使用多個(gè)master節(jié)點(diǎn)來(lái)構(gòu)建master集群。多master集群可以分為應(yīng)用集群與存儲(chǔ)集群。應(yīng)用集群主要是apiserver、scheduler、controller-manager的集群它們可以是單獨(dú)的節(jié)點(diǎn)實(shí)現(xiàn)負(fù)載均衡集群,而etcd可以實(shí)現(xiàn)多節(jié)點(diǎn)的高可用集群。其中etcd高可以集群也可以分為內(nèi)置集群與外部集群的方式。以下就具體的介紹:

1、應(yīng)用負(fù)載均衡集群

kubernetes多master集群是指使用多個(gè)master節(jié)點(diǎn)來(lái)提高集群的可用性和容錯(cuò)性的方案。master節(jié)點(diǎn)是負(fù)責(zé)控制和管理集群中的資源和服務(wù)的節(jié)點(diǎn),它運(yùn)行著以下組件:

  • kube-apiserver:提供了HTTP REST接口的關(guān)鍵服務(wù)進(jìn)程,是集群中所有資源的增、刪、改、查等操作的唯一入口,也是集群控制的入口進(jìn)程。
  • kube-scheduler:負(fù)責(zé)資源調(diào)度(Pod調(diào)度)的進(jìn)程,相當(dāng)于公交公司的“調(diào)度室”。
  • kube-controller-manager:集群中所有資源對(duì)象的自動(dòng)化控制中心,可以將其理解為資源對(duì)象的“大總管”。

實(shí)現(xiàn)kubernetes master集群有多種方式,根據(jù)不同的需求和場(chǎng)景,可以選擇合適的方式來(lái)搭建和運(yùn)維master集群。一般來(lái)說(shuō),根據(jù)實(shí)現(xiàn)方式,負(fù)載均衡集群可以分為以下幾種方案:

  • 硬件負(fù)載均衡:硬件負(fù)載均衡是使用專(zhuān)門(mén)的硬件設(shè)備來(lái)實(shí)現(xiàn)負(fù)載均衡的方案,如 F5、Cisco 等。硬件負(fù)載均衡的優(yōu)點(diǎn)是性能高、穩(wěn)定性強(qiáng),缺點(diǎn)是成本高、擴(kuò)展性差。
  • 軟件負(fù)載均衡:軟件負(fù)載均衡是使用普通的服務(wù)器和軟件來(lái)實(shí)現(xiàn)負(fù)載均衡的方案,如 Nginx、HAProxy 等。軟件負(fù)載均衡的優(yōu)點(diǎn)是成本低、擴(kuò)展性好,缺點(diǎn)是性能低、穩(wěn)定性差。
  • 混合負(fù)載均衡:混合負(fù)載均衡是結(jié)合硬件和軟件來(lái)實(shí)現(xiàn)負(fù)載均衡的方案,如使用硬件設(shè)備作為全局入口,使用軟件作為局部分發(fā)?;旌县?fù)載均衡的優(yōu)點(diǎn)是兼顧了性能和成本,缺點(diǎn)是復(fù)雜度高、維護(hù)難。

2、存儲(chǔ)高可用集群

etcd:分布式鍵值存儲(chǔ)系統(tǒng),用于保存集群中所有資源對(duì)象的狀態(tài)和元數(shù)據(jù)。

k8s配置高可用(HA)Kubernetes etcd集群。

你可以設(shè)置 以下兩種HA 集群:

  • 使用堆疊(stacked)控制平面節(jié)點(diǎn),其中 etcd 節(jié)點(diǎn)與控制平面節(jié)點(diǎn)共存
  • 使用外部 etcd 節(jié)點(diǎn),其中 etcd 在與控制平面不同的節(jié)點(diǎn)上運(yùn)行

(1)堆疊(Stacked)etcd 拓?fù)?-內(nèi)置etcd集群

堆疊(Stacked)HA集群是一種這樣的拓?fù)?,其?etcd 分布式數(shù)據(jù)存儲(chǔ)集群堆疊在 kubeadm 管理的控制平面節(jié)點(diǎn)上,作為控制平面的一個(gè)組件運(yùn)行。

每個(gè)控制平面節(jié)點(diǎn)運(yùn)行 kube-apiserver、kube-scheduler 和 kube-controller-manager 實(shí)例。 kube-apiserver 使用負(fù)載均衡器暴露給工作節(jié)點(diǎn)。

每個(gè)控制平面節(jié)點(diǎn)創(chuàng)建一個(gè)本地etcd成員(member),這個(gè) etcd 成員只與該節(jié)點(diǎn)的 kube-apiserver 通信。 這同樣適用于本地 kube-controller-manager 和 kube-scheduler 實(shí)例。

這種拓?fù)鋵⒖刂破矫婧?etcd 成員耦合在同一節(jié)點(diǎn)上。相對(duì)使用外部 etcd 集群, 設(shè)置起來(lái)更簡(jiǎn)單,而且更易于副本管理。

然而,堆疊集群存在耦合失敗的風(fēng)險(xiǎn)。如果一個(gè)節(jié)點(diǎn)發(fā)生故障,則etcd 成員和控制平面實(shí)例都將丟失, 并且冗余會(huì)受到影響。你可以通過(guò)添加更多控制平面節(jié)點(diǎn)來(lái)降低此風(fēng)險(xiǎn)。

因此,你應(yīng)該為 HA 集群運(yùn)行至少三個(gè)堆疊的控制平面節(jié)點(diǎn)。

這是 kubeadm 中的默認(rèn)拓?fù)洹.?dāng)使用 kubeadm init 和 kubeadm join --control-plane 時(shí), 在控制平面節(jié)點(diǎn)上會(huì)自動(dòng)創(chuàng)建本地 etcd 成員。

(2)外部 etcd 拓?fù)?-外部etcd集群

具有外部 etcd 的 HA 集群是一種這樣的拓?fù)洌?其中 etcd 分布式數(shù)據(jù)存儲(chǔ)集群在獨(dú)立于控制平面節(jié)點(diǎn)的其他節(jié)點(diǎn)上運(yùn)行。

就像堆疊的 etcd 拓?fù)湟粯?,外?etcd 拓?fù)渲械拿總€(gè)控制平面節(jié)點(diǎn)都會(huì)運(yùn)行 kube-apiserver、kube-scheduler 和 kube-controller-manager 實(shí)例。 同樣,kube-apiserver 使用負(fù)載均衡器暴露給工作節(jié)點(diǎn)。但是 etcd 成員在不同的主機(jī)上運(yùn)行, 每個(gè) etcd 主機(jī)與每個(gè)控制平面節(jié)點(diǎn)的 kube-apiserver 通信。

這種拓?fù)浣Y(jié)構(gòu)解耦了控制平面和 etcd 成員。因此它提供了一種 HA 設(shè)置, 其中失去控制平面實(shí)例或者 etcd 成員的影響較小,并且不會(huì)像堆疊的 HA 拓?fù)淠菢佑绊懠喝哂唷?/p>

但此拓?fù)湫枰獌杀队诙询B HA 拓?fù)涞闹鳈C(jī)數(shù)量。 具有此拓?fù)涞?HA 集群至少需要三個(gè)用于控制平面節(jié)點(diǎn)的主機(jī)和三個(gè)用于 etcd 節(jié)點(diǎn)的主機(jī)。

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

2024-02-27 09:48:25

Redis集群數(shù)據(jù)庫(kù)

2025-03-04 08:20:00

2012-02-13 23:20:18

linux集群高可用

2015-07-29 13:21:58

DockerRails 集群高可用架構(gòu)

2013-03-21 11:09:48

網(wǎng)絡(luò)管理高可用性集群系統(tǒng)網(wǎng)絡(luò)虛擬化基礎(chǔ)架構(gòu)

2009-06-14 17:53:28

ibmdwWebSphere

2012-02-22 09:58:59

虛擬化桌面虛擬化Citrix Xend

2010-11-29 16:22:32

虛擬化高可用性

2022-01-12 11:55:43

Kubernetes多集群Linux

2022-07-24 21:11:19

KubernetesLinux

2022-07-08 14:17:18

Kubernetes集群高可用Linux

2014-08-14 16:38:22

HeartbeatApache集群

2023-12-05 09:31:46

數(shù)據(jù)庫(kù)架構(gòu)

2010-12-31 14:36:15

ExchangeSer

2022-07-11 09:46:43

Kubernetes開(kāi)源Linux

2021-08-29 20:02:38

高并發(fā)集群部署

2011-12-02 10:10:34

RedisFailover

2023-12-18 09:37:37

2025-03-31 10:40:52

2022-05-24 09:00:00

云計(jì)算Kubernetes安全
點(diǎn)贊
收藏

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