Kubernetes 高可用拓?fù)溥x項(xiàng)

2022-05-31 10:58 更新

高可用拓?fù)溥x項(xiàng)

本頁面介紹了配置高可用(HA)Kubernetes 集群拓?fù)涞膬蓚€(gè)選項(xiàng)。

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

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

在設(shè)置 HA 集群之前,你應(yīng)該仔細(xì)考慮每種拓?fù)涞膬?yōu)缺點(diǎn)。

Note:
kubeadm 靜態(tài)引導(dǎo) etcd 集群。 閱讀 etcd 集群指南以獲得更多詳細(xì)信息。

堆疊(Stacked)etcd 拓?fù)?nbsp;

堆疊(Stacked)HA 集群是一種這樣的拓?fù)?/a>, 其中 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ù)鋵⒖刂破矫婧?nbsp;etcd 成員耦合在同一節(jié)點(diǎn)上。相對(duì)使用外部 etcd 集群, 設(shè)置起來更簡(jiǎn)單,而且更易于副本管理。

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

kubeadm-ha-topology-stacked-etcd

外部 etcd 拓?fù)?nbsp;

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

就像堆疊的 etcd 拓?fù)湟粯樱獠?nbsp;etcd 拓?fù)渲械拿總€(gè)控制平面節(jié)點(diǎn)都運(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ù)淠菢佑绊懠喝哂唷?

但此拓?fù)湫枰獌杀队诙询B HA 拓?fù)涞闹鳈C(jī)數(shù)量。

具有此拓?fù)涞?nbsp;HA 集群至少需要三個(gè)用于控制平面節(jié)點(diǎn)的主機(jī)和三個(gè)用于 etcd 節(jié)點(diǎn)的主機(jī)。

kubeadm-ha-topology-external-etcd


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)