迎接管理多集群 Kubernetes的挑戰(zhàn)
譯文【51CTO.com快譯】
作者丨Emile Vauge
譯者丨崔皓
策劃丨孫淑娟
隨著互聯網的發(fā)展,人們生活的方方面面不斷轉移到線上,而且人們的線上需求向互聯網擴展的趨勢越發(fā)明顯。這種趨勢始于多年前(可以說是在互聯網繁榮時期),趨勢的形成也見證了技術的更迭。
AWS 于 2002 年作為第一個公有云產品被推出時,就為企業(yè)打開了一扇大門,透過這扇門,企業(yè)可以將 IT 運維工作交給 AWS 完成,并根據 IT 服務情況對硬件資源進行靈活調整。虛擬機的應用將應用軟件從硬件層面抽象出來,這種方式對應用部署模式提出了新的要求。
為什么應該使用微服務架構
微服務被認為是獨立且松耦合服務的集合,它們可以獨立于部署環(huán)境進行維護和配置。這種特性使它們可以被打包到容器中進行大規(guī)模部署(2014 年由 Docker 商品化),由此容器技術正在成為新一代分布式基礎設施的組成部分。
Rancher、Docker Swarm 和 Mesos 等不同技術競相在容器編排中占據領先地位。但最終 Kubernetes(由 Google 于 2014 年開源)在容器化微服務領域獨占鰲頭。
雖然對于企業(yè)而言 Kubernetes 的優(yōu)勢明顯,但其固有的復雜性和陡峭的學習曲線卻讓人望而卻步。這也是為什么小公司由于缺乏運維知識和運維資源,無法應用大型技術棧并使其發(fā)揮作用的原因。而大企業(yè)面臨的困難是難以將云原生工具和處理流程集成到舊有的基礎設施中。
應對 Kubernetes 的復雜性
多年來,業(yè)界出現了多種解決方案,旨在幫助企業(yè)應用 Kubernetes 并優(yōu)化容器編排。Rancher、OpenShift 和公有云托管服務(例如 Azure Kubernetes Service、Elastic Kubernetes Service 和 Google Kubernetes Engine)就是很好的例子。這些解決方案極大地降低了 Kubernetes 集群部署和管理的難度,加速了企業(yè)采取云原生應用的進程,同時使所部署的應用更具伸縮性和擴展性。
出于以上原因 Kubernetes 在業(yè)內獲得了廣泛的應用。2021 年為了了解 Kubernetes 的使用情況,Traefik Labs 調查了 1,000 多名 IT 專業(yè)人士。調查中,超過 70% 的受訪者表示將 Kubernetes 用于商業(yè)項目。然而,企業(yè)雖然克服了容器部署的困難,但在擴展部署方面又面臨新的阻礙。
隨著 Kubernetes 持續(xù)被應用,新的挑戰(zhàn)接踵而至。企業(yè)需要支持更多更大的 Kubernetes 集群,從而滿足越來越多的容器化應用的需求。然而,更多的集群意味著更多的組件需要被管理和更新。在單個 Kubernetes 部署中相對容易解決的問題,放到更大的多集群環(huán)境中就會被成倍放大。Kubernetes 的復雜性隨著集群的不斷擴展也被急劇加深。因此,多集群編排不可避免地成為工程師要解決的下一個前沿問題。
Kubernetes 多集群需求
開發(fā)人員需要趁手的工具來管理多集群,從上下文報警到新的部署策略的方方面面都是如此。讓我們將管理工具進行如下分析:
- Federation 工具提供了一種機制,用于管理多個 Kubernetes 集群以及集群對應的配置信息。托管的集群會提供一組 API 用來協(xié)調分布式環(huán)境的多個 Kubernetes 集群的配置,就是 Federation 會針對管理的多個 Kubernetes 集群提供一組 API 來管理這些集群和它們對應的配置?;诙嗉旱穆摵显萍夹g可以支持兩個或多個不同位置的計算云互連,使運維團隊更容易處理復雜的多集群問題。
- 想讓多個集群像單獨個體一樣工作是非常復雜的事情,不過連通性可以讓夢想成真。使用正確的工具可以有效處理集群互連、控制集群路由、使跨區(qū)域的分布式池負載均衡(使用全局服務器負載平衡或 GSLB - Global Server Load Balancing),以及管理跨越多個集群的應用更新。
- 安全問題在復雜的分布式環(huán)境中顯得更加復雜,幸運的是可以使用云原生安全工具和對應的處理流程來解決。我們不禁要問,如何處理零信任環(huán)境中的安全問題?如何管理每個連接端到端的加密?如何控制對應用程序的訪問?如何在分布式基礎架構中管理 TLS 證書?只有把關于安全解決方案集成到集群中,分布式應用才變得更加安全。
- 可觀察性使您可以快速查看分布式基礎架構的大圖,從而可以快速發(fā)現和診斷問題。Grafana 和 Prometheus 就是為此目的所打造的工具,并且在業(yè)內得到廣泛使用。隨著部署的集群數量的增加,系統(tǒng)中的問題也層出不窮,因此可觀察性和上下文報警就變得尤為重要。擁有適合的工具能讓開發(fā)人員準確地查看問題,從而保證應用程序順利運行,同時還節(jié)省了猜測問題的寶貴時間。
Kubernetes 多集群的未來
確保集群、服務和網絡流量在云原生世界中協(xié)同工作是一項巨大挑戰(zhàn)。Kubernetes 贏得了“容器編排”的戰(zhàn)爭,并持續(xù)被世界各地的組織廣泛采用。但隨著日趨成熟的技術不斷涌現,新的問題和新的挑戰(zhàn)也接踵而至,使得多集群應用部署變得更加復雜。
沒有人想再管理 Kubernetes 了,使用 Kubernetes 的門檻需要降低。
工作在 Kubernetes 上的開發(fā)、工程和運維團隊(包括所有技術級別),為了更好地構建和操作應用程序,需要更簡單的方法來實現集群和網絡的可見性、可擴展性和安全性。開發(fā)人員在尋找微服務管理工具的過程中,必須優(yōu)先考慮工具的即時可觀察性、開箱即用的上下文報警功能、地理感知內容交付(譯者:在多個集群部署的情況下,由于集群中部署的服務有可能會互相調用。所以,需要按照地理位置在同一個地方的集群中的服務互相調用。也就是服務會去調用同一個集群中的服務,盡量不去做跨集群的服務,盡管這種跨集群的調用是可能的,但是效率不高。這里說的地理感知就是指服務調用會通過地理上的位置感知要調用的其他服務,而被調用的服務將需要交付的內容提供給調用者。DNS 也是實現了這種地理感知內容交付的。)以及內置服務網格等功能。
多集群編排的挑戰(zhàn)正變得越來越普遍,但通過使用正確的工具適應云原生世界,但如果開發(fā)和運營團隊將能夠使用合適的工具應用于云原生世界,就可以解決多集群 Kubernetes 的 復雜問題,并收獲 Kubernetes 帶來的巨大成果。
譯者介紹
崔皓,51CTO 社區(qū)編輯,資深架構師,擁有 18 年的軟件開發(fā)和架構經驗,10 年分布式架構經驗。曾任惠普技術專家。樂于分享,撰寫了很多熱門技術文章,閱讀量超過 60 萬。??《分布式架構原理與實踐》??作者。
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】
???