容器編配引擎具有作為邊緣解決方案的潛力,但是在它成為邊緣解決方案之前還有很多問題需要解決。
到目前為止,您可能已經聽說了Kubernetes如何在傳統的本地部署和云環境中簡化應用程序的大規模部署。但是,將中央數據中心與托管在離終端用戶更近的邊緣位置的工作負載結合起來的邊緣架構又如何呢?Kubernetes也能支撐一個邊緣計算平臺嗎?
答案是有可能。盡管Kubernetes作為邊緣計算解決方案有潛力,但是Kubernetes的開發人員和用戶需要克服一些障礙,才能讓K8s真正為邊緣做好準備。
Kubernetes如何幫助邊緣計算平臺
一些觀察家認為Kubernetes已經為在邊緣環境中托管應用程序做好了準備。例如,Canonical的Ammar Naqvi寫道Kubernetes是“邊緣計算的關鍵組成部分”,云原生基金會(Cloud Native computing Foundation)也將Kubernetes推廣為邊緣解決方案。它還贊助KubeEdge,這是一個完整的開源平臺,致力于基于Kubernetes的邊緣部署,去年11月成為CNCF的孵化項目。
當然,這些組織有點偏頗。Canonical和CNCF對Kubernetes進行了深入的投資,如果Kubernetes作為構建邊緣計算平臺的解決方案受到歡迎,他們將獲益匪淺。
盡管如此,他們還是對Kubernetes為何天生適合邊緣提出了一些好的意見。在他們撰寫本文時,Kubernetes提供了一個通用控制平面,可以與任何類型的基礎邊緣基礎架構一起使用,這意味著它將簡化跨各種邊緣環境的工作負載的部署和管理。Kubernetes在平衡流量和最小化延遲方面也很出色,這是邊緣工作負載的優先事項。而且,通過充當DevOps CI / CD管道的部署環境,Kubernetes將使開發人員可以輕松地對邊緣應用程序進行持續更新。
除了對推廣Kubernetes有明確興趣的供應商和開發人員之外,有證據表明,更中立的團體也將Kubernetes視為未來邊緣計算平臺的重要組成部分。在一份基于對云計算和數據中心行業十多位思想領袖和供應商的采訪的報告中,Omdia發現,目前有超過一半的人看到Kubernetes被部署用于邊緣工作負載。
據Omdia的報告稱:“Kubernetes將成為一種能夠管理從云到邊緣的工作負載的技術,它提供了一個通用的應用程序管理平臺。”
簡而言之,我們有充分的理由相信Kubernetes在未來幾年將成為邊緣計算平臺越來越重要的一部分。
Kubernetes邊緣挑戰
然而,要使Kubernetes成為管理部署在邊緣的應用程序的真正無縫解決方案,開發人員需要解決幾個難題。
可能最大的問題是確保中央數據中心和邊緣位置之間的低延遲數據傳輸。在許多方面,快速移動數據是邊緣計算的最大挑戰;應用程序編排是次要問題。而Kubernetes本身并沒有優化數據傳輸。數據結構確實如此,但Kubernetes并沒有以特定的方式與之集成。
為了確保在基于Kubernetes的邊緣環境中進行低延遲的數據移動,那么構建邊緣計算平臺的開發人員將需要將Kubernetes與數據結構解決方案相結合的部署變得更容易。他們可能還需要改進Kubernetes處理內部數據移動的方式,例如,讓Kubernetes更容易知道哪些內部流量需要優先處理。目前,Kubernetes在解決如何平衡來自外部端點的傳入流量方面做得很好,但不太擅長管理以每毫秒計數的內部流量流。 類似地,Kubernetes將從更強的工作負載安排控制中受益。Kubernetes使管理員能夠將應用程序分配給各個節點,當所有節點都在一個數據中心內運行時,這種方法效果很好。
但是,如果節點分布在多個邊緣位置,并且可能分布在一個中央數據中心,該怎么辦呢?在這種情況下,您可能希望有能力去管理有獨立邊緣位置承載的應用程序,以及平衡它們之間流量。這在今天的Kubernetes中是很復雜的,除非你在每個邊緣位置只有一個節點,這是不可能的。那么,Kubernetes需要的是一個特性,允許管理員根據不同地理位置的節點池來定義工作負載的放置方式和優先級,而不僅僅是運行在同一物理位置的單個節點。
多集群管理仍然是一個挑戰。最初,Kubernetes的設計或多或少假設每個組織將運行一個集群,并可能劃分為多個名稱空間。這些年來,情況發生了變化,大多數Kubernetes供應商現在都支持多集群管理。但是它們做得并不好,跨多個集群管理工作負載仍然是Kubernetes開發人員的次要考慮事項。 這對于邊緣計算平臺來說是個問題,組織可能會選擇在每個邊緣位置運行單獨的集群,以隔離工作負載并簡化真正大規模環境的管理。
結論
Kubernetes有很多可以作為邊緣計算平臺的基礎,但在這方面也有一些明顯的缺點。所以一些架構師認為Kubernetes不適合某些可能部署在邊緣的工作負載,比如集裝箱化電信應用程序。
另一方面,只要付出足夠的開發努力,Kubernetes作為邊緣計算平臺基礎所面臨的挑戰是可以解決的。我們應該問的真正問題,也許不是Kubernetes是否能夠在邊緣工作(目前,答案是它只是作為一種邊緣解決方案),而是開發人員是否愿意投入所需的努力,使其成為一個成熟的邊緣計算平臺。