在Kubernetes上運(yùn)行Kubernetes
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
開源容器編排引擎 Kubernetes 絕對(duì)有魔力。
一直以來(lái),容器就是個(gè)很酷的概念,但事實(shí)上,廣泛部署卻十分困難。你幾乎沒(méi)法手動(dòng)管理容器之間的網(wǎng)絡(luò)、持續(xù)存儲(chǔ)和數(shù)百個(gè)容器間的自動(dòng)擴(kuò)展,而一個(gè)讓人拍案叫絕的容器管理平臺(tái)卻遲遲未出現(xiàn)。
這樣的局面一直維持到2014年,谷歌將 Kubernetes 項(xiàng)目發(fā)布到開放源代碼社區(qū)之前。
Kubernetes 一開源,企業(yè)或者開發(fā)人員就可以在 Kubernetes 集群上自動(dòng)管理網(wǎng)絡(luò)、存儲(chǔ)、自動(dòng)擴(kuò)展、警報(bào)以及許多其他標(biāo)準(zhǔn)化基礎(chǔ)架構(gòu)功能,它極少宕機(jī),而且表現(xiàn)非凡。大規(guī)模運(yùn)行容器和利用分布式基礎(chǔ)設(shè)施成為許多公司的可行選擇。
巧合的是,云原生應(yīng)用程序的想法引來(lái)了 pets 與 cattle 的討論,基礎(chǔ)設(shè)施的每個(gè)組件都變得可替代,而不再是不可替代的 pet。隨著這種思路的更新,每個(gè)組件在運(yùn)行失敗的時(shí)候都不會(huì)受影響:服務(wù)器、機(jī)架、數(shù)據(jù)中心這些。然而,諷刺的是,許多公司像對(duì)待寵物一樣對(duì)待其 Kubernetes 集群,花費(fèi)大量時(shí)間和資源來(lái)照顧。
在我們看來(lái),這相當(dāng)奇怪,本不該如此,因?yàn)樗`背了云原生應(yīng)用的理念。因此,我們的任務(wù)很明確:我們希望 Kubernetes 成為低維護(hù) cattle:完全管理、可擴(kuò)展、多租戶和隨時(shí)可用。此外,我們希望為所有的集群提供一個(gè) API。
如果 Kubernetes 為運(yùn)行自動(dòng)化集群提供了完美的工具,那么為什么不使用 Kubernetes 自主托管多個(gè) Kubernetes 集群?為什么不把關(guān)注的重點(diǎn)從“管理一個(gè) Kubernetes 集群”,重新轉(zhuǎn)移到“管理一個(gè)服務(wù)”?例如配置 “Kubernetes-as-a-Service” 的服務(wù)。
Kubernetes 中如何運(yùn)行 Kubernetes 呢?
首先要做的是建立運(yùn)行多個(gè)獨(dú)立客戶集群的主組件的外部 Kubernetes 集群。像其他 Kubernetes 集群一樣,主集群由四個(gè)主要組件組成:API server,etcd key value store,scheduler 和 controller。為了防止停機(jī),我們?yōu)槊總€(gè)組件創(chuàng)建了一個(gè)具有多個(gè)實(shí)體的高可用性設(shè)置。
然后,啟動(dòng)內(nèi)部集群。我們創(chuàng)建了一個(gè)命名空間,生成證書、令牌和 SSH 密鑰,并部署主組件。隨后,我們添加了一個(gè)入口,使 API 服務(wù)器等從外部訪問(wèn)。最后,我們安裝了基本的插件,如 Heapster,kube-proxy,Kube-dns 和 dashboard。
之后,我們想知道內(nèi)部群集中發(fā)生了什么,也就是節(jié)點(diǎn)和 pod 實(shí)際上正在運(yùn)行的地方。不幸的是,無(wú)法進(jìn)行標(biāo)準(zhǔn)的 Kubernetes 設(shè)置,只能與主集群的 API 進(jìn)行通信。為了進(jìn)一步復(fù)雜化,我們要使用 N 個(gè) API 服務(wù)器和 N 個(gè)擁有主集群 IP 的 etcd 實(shí)例來(lái)設(shè)置 N 個(gè)集群。因此,我們需要提供一種能夠通過(guò) SSH 隧道向客戶 API 服務(wù)器3發(fā)送客戶 API 服務(wù)器3的加密請(qǐng)求的 HTTP 和 TCP 代理服務(wù)。
總結(jié)
我們展示的是:您可以在 Kubernetes 中運(yùn)行 Kubernetes 來(lái)提供多個(gè)自主托管和完全管理的內(nèi)部集群。這樣可以輕松地創(chuàng)建、更新、刪除和重新安排集群,而不影響功能。此外,這種架構(gòu)確保更高的隔離度和安全性,并且很大程度上促進(jìn)了多租戶。
雖然這個(gè)概念還處于萌芽階段,但我們認(rèn)為,Kubernetes-in-Kubernetes 是為再次逃避 pet 范式所跨出的重要一步。這個(gè)概念使企業(yè)能夠大規(guī)模地運(yùn)行多個(gè)集群,同時(shí)追求真正的云原生策略,讓企業(yè)只需要專注于應(yīng)用程序,而不是基礎(chǔ)設(shè)施。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%