溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Bare Metal K8S集群是怎樣在Chick-fil-A 大規(guī)模使用的

發(fā)布時(shí)間:2022-01-05 10:59:19 來(lái)源:億速云 閱讀:275 作者:柒染 欄目:云計(jì)算

本篇文章給大家分享的是有關(guān)Bare Metal K8S集群是怎樣在Chick-fil-A 大規(guī)模使用的,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

美國(guó)快餐連鎖店Chick-fil-A在其2000多家餐廳的邊緣計(jì)算中使用著Kubernetes,在規(guī)模上看,這意味著有大約6000臺(tái)設(shè)備上同時(shí)運(yùn)行著Kubernetes。其中與此相關(guān)的最大的一個(gè)挑戰(zhàn)是:如何在餐廳的物理機(jī)上部署和管理這么多Kubernetes集群。本文由Chick-fil-A的技術(shù)團(tuán)隊(duì)所寫(xiě),分享他們?cè)贙ubernetes集群管理技術(shù)選型、物理機(jī)上Kubernetes集群的安裝和管理方面的經(jīng)驗(yàn)。

大多數(shù)情況下,Kubernetes都在云中部署,或由熟練Kubernetes的技術(shù)人員在物理機(jī)上部署(再或者至少配有遠(yuǎn)程訪問(wèn))。但對(duì)Chick-fil-A而言,我們的Kubernetes部署是由那些僅關(guān)注初始硬件安裝的安裝人員完成的。因?yàn)槠渥詥?dòng)的特性,它們從不需要直接連接到計(jì)算設(shè)備——而是連接以太網(wǎng)和電源線,并通過(guò)查看應(yīng)用程序app來(lái)檢查集群的狀態(tài) 。整個(gè)替換過(guò)程由對(duì)技術(shù)并不太專(zhuān)業(yè)的餐廳老板/運(yùn)營(yíng)者或他們的團(tuán)隊(duì)完成。

最大的挑戰(zhàn)是,我們的邊緣計(jì)算部署并不完全在“數(shù)據(jù)中心環(huán)境”中。

集群管理:我們考慮過(guò)的選擇

為了解決集群管理的挑戰(zhàn),我們做過(guò)全面的技術(shù)調(diào)研,曾考慮過(guò)如下幾個(gè)選項(xiàng):

  • Kubespray - 我們最開(kāi)始調(diào)查了基于Ansible的Kubespray,但我們發(fā)現(xiàn)它相當(dāng)脆弱。當(dāng)事情進(jìn)展順利時(shí),我們能得到了一個(gè)集群;但當(dāng)事情進(jìn)展不太順利時(shí),我們就會(huì)創(chuàng)建一塊難以變回計(jì)算機(jī)的“磚塊”。我們還發(fā)現(xiàn)使用Kubespray啟動(dòng)集群的過(guò)程非常緩慢,通常在我們的硬件棧上花費(fèi)的時(shí)間長(zhǎng)達(dá)30分鐘。我們相信Kubespray能有更長(zhǎng)遠(yuǎn)的發(fā)展,但就我們的調(diào)研結(jié)果而言,我們認(rèn)為得從別的方向探索別的解決方案。

  • Openshift - Openshift可以創(chuàng)建Kubernetes集群,但我們不喜歡在至關(guān)重要的基礎(chǔ)設(shè)施部分跟供應(yīng)商的解決方案捆綁地太過(guò)緊密,不想承擔(dān)未來(lái)可能被技術(shù)鎖定的風(fēng)險(xiǎn)。

  • Kops - 我們是Kops的忠實(shí)粉絲,我們用它來(lái)部署我們?cè)频摹翱刂泼姘濉盞ubernetes集群。不幸的是,當(dāng)我們將其使用到我們的邊緣計(jì)算中時(shí),Kops并不是一個(gè)可行的裸機(jī)解決方案。我們期待看到它在未來(lái)的發(fā)展。

  • Kubeadm - Kubeadm是另一個(gè)不錯(cuò)的Kubernetes集群實(shí)用程序。Kubeadm項(xiàng)目看起來(lái)很有發(fā)展前景,但我們認(rèn)為它比一些替代品 (尤其在其靈活性上)復(fù)雜的多,包括...

RKE

就我們目前的選擇而言,RKE是最終贏家。RKE是由Rancher Labs提供的開(kāi)源的Kubernetes集群管理引擎。雖然我們暫時(shí)未使用Rancher 2.0來(lái)管理我們的集群,但我們確實(shí)喜歡使用RKE來(lái)初始化和維護(hù)集群的簡(jiǎn)單性。

要使用RKE,你需要確定一個(gè)領(lǐng)導(dǎo)節(jié)點(diǎn)并為其提供一個(gè)配置YAML文件,YAML文件中包含有關(guān)該集群的數(shù)據(jù),主要是參與集群活動(dòng)的節(jié)點(diǎn)的主機(jī)名。

如果集群中的節(jié)點(diǎn)發(fā)生添加、刪除、或死亡,則配置文件需要擁有一個(gè)對(duì)當(dāng)前和未來(lái)節(jié)點(diǎn)的準(zhǔn)確描述。如果配置不能保持持續(xù)最新,集群就會(huì)失敗。雖然我們認(rèn)為缺少節(jié)點(diǎn)不應(yīng)該使群集初始化/更新失敗,但目前來(lái)看實(shí)際情況正是如此。

安裝過(guò)程

我們?cè)诓蛷d的安裝過(guò)程非常簡(jiǎn)單——將設(shè)備拆箱,將其插入電源和標(biāo)記的交換機(jī)端口,就是這樣。它們會(huì)自動(dòng)啟動(dòng)電源,并實(shí)現(xiàn)自引導(dǎo)和集群創(chuàng)建。RKE讓非技術(shù)用戶能夠在不了解Kubernetes甚至整體架構(gòu)的情況下,通過(guò)無(wú)比簡(jiǎn)單的過(guò)程執(zhí)行安裝和替換的工作,這一體驗(yàn)非常棒,不過(guò)它也確實(shí)需要一些更復(fù)雜的引導(dǎo)過(guò)程。

尚未被納入集群的節(jié)點(diǎn)之間,需要彼此協(xié)調(diào)以確定誰(shuí)將被納入到集群中。他們還需要選出一個(gè)主節(jié)點(diǎn)來(lái)通過(guò)RKE執(zhí)行集群創(chuàng)建。

Highlander

為了解決這個(gè)問(wèn)題,我們開(kāi)發(fā)了Highlander。因?yàn)槲覀冎荒苡幸粋€(gè)集群發(fā)起者。

Highlander是我們基礎(chǔ)邊緣鏡像的一部分。當(dāng)每個(gè)節(jié)點(diǎn)啟動(dòng)時(shí),UDP會(huì)廣播其存在并詢問(wèn)是否存在已建立的領(lǐng)導(dǎo)者。它也會(huì)開(kāi)始傾聽(tīng)自己。幾秒鐘后沒(méi)有回復(fù),它將發(fā)送另一個(gè)廣播,宣布自己成為領(lǐng)導(dǎo)者。有什么異議嗎?如果沒(méi)有反對(duì)的訊息,該節(jié)點(diǎn)將很快成為集群領(lǐng)導(dǎo)者,并以領(lǐng)導(dǎo)者身份回應(yīng)未來(lái)接收到的所有請(qǐng)求。

如果另一個(gè)節(jié)點(diǎn)已經(jīng)聲明了自己領(lǐng)導(dǎo)者的角色,新節(jié)點(diǎn)將確認(rèn)該聲明。現(xiàn)有的領(lǐng)導(dǎo)者會(huì)執(zhí)行“RKE up”將新節(jié)點(diǎn)納管到現(xiàn)有的集群中。

節(jié)點(diǎn)們會(huì)定期溝通以確保領(lǐng)導(dǎo)者仍在其中。如果舊領(lǐng)導(dǎo)者已經(jīng)死亡,一個(gè)新的領(lǐng)導(dǎo)者將通過(guò)一個(gè)使用隨機(jī)睡眠和領(lǐng)導(dǎo)聲明的簡(jiǎn)單協(xié)議來(lái)選舉而出。雖然這很簡(jiǎn)單不復(fù)雜,容易推理和理解,但它能實(shí)現(xiàn)成規(guī)模地有效工作。

領(lǐng)導(dǎo)者選舉完成后,Highlander還能確保集群被正確得配置。在我們的環(huán)境中,這包括:

? 將 KubeDNS切換成CoreDNS

? 創(chuàng)建Istio或其他核心控制面板節(jié)點(diǎn)

? OAuth身份認(rèn)證

注意:我們的每個(gè)節(jié)點(diǎn)都有自己的身份和短暫的JWT來(lái)訪問(wèn)已驗(yàn)證的資源。Highlander提供此身份,并以Kubernetes秘鑰的形式來(lái)提供token令牌。

整合過(guò)程

盡管我們?cè)谖闹兄饕P(guān)注集群初始化,接下來(lái)我們也介紹一下在餐廳中實(shí)時(shí)進(jìn)行節(jié)點(diǎn)初始化的整個(gè)流程。

Bare Metal K8S集群是怎樣在Chick-fil-A 大規(guī)模使用的

以上就是Bare Metal K8S集群是怎樣在Chick-fil-A 大規(guī)模使用的,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

k8s
AI