想基于K8s按需扩展应用程序,可从这几方面入手
馬修·赫瑟(Matthew Heusser)
在花費了十年時間進行編程,測試和項目管理之后,Matt Heusser于2011年創立了自己的公司Excelon Development。該協會前董事會成員Matt還是軟件測試人員,是德國波茨坦最具影響力的敏捷測試專業人員(MIATPP)的獲得者,他是敏捷測試日會議的兩次主要演講人。Matt是“如何降低軟件測試成本”一書的首席編輯,Matt還是由敏捷聯盟贊助的技術債務研討會的主要組織者。作為Excelon的常務董事,Matt目前的重點是DevOps和精益技術,以提高系統性能。
Kubernetes正在成為首選的容器協調器。如果您知道如何配置它,它甚至還具有按需擴展應用程序的能力。
在Docker提供了可以在您的筆記本電腦上運行的小型輕量級虛擬機之后,Kubernetes緊隨其后提供了一個實際的生產集群。事實證明,運行生產集群是一項復雜的工作。例如,Kubernetes并非隨身攜帶用于管理擴展的工具。
在本文中,我將討論Kubernetes中的三個擴展級別。首先,我將使應用程序了解其資源,然后將Kubernetes配置為從云請求更多虛擬機,然后,最后,我將討論高可用性和多個集群之間的平衡。
應用擴展
盡管Kubernetes能夠按比例放大或縮小應用程序,但仍需要“彈性”配置工作。例如,Kubernetes可以跟蹤任何一個應用程序將需要的資源,以確保它不會在虛擬機上拋出過多的資源。您可以定義應用程序的內存,CPU和網絡帶寬需求。為此,您需要在生產環境中對應用程序進行概要分析,以找出那些需求,然后在pod的配置中表達這些需求。如果沒有該信息,調度程序將假定資源需求為零,并且很容易使虛擬機具有Pod。
假設應用程序是按比例縮放的,則可能需要運行多個Pod以實現高可用性。這樣,您可以執行滾動升級并將正常運行時間保持在接近100%的水平。Kubernetes文檔提供了有關擴展部署的教程,但這是手動擴展和縮減資源。的水平波德自動配置器可以監視CPU,存儲器及其他指標,并添加,并根據需要除去吊艙。
集群本身將具有資源。如果它運行在按CPU計費的按分鐘計費的云中,則希望將該數字保持盡可能小。這引入了一個新的問題,即如何使集群按需擴展。
集群擴展
開箱即用的Kubernetes不能也不可以提供自我擴展的工具。群集是一個群集,不知道其外部的其他資源。但是,可以編寫一個監視利用率的中間件工具,該工具也連接到可以提供虛擬機的某些其他服務。這可以是公共云,私有云(如OpenStack)或使用VMWare等工具的虛擬機場。Microsoft,Amazon,IBM和Google都在其云中為Kubernetes用戶提供了這種自動縮放技術,并且有開源的Autoscaler工具。
集群擴展的另一個選項是OpenShift,它是運行Kubernetes集群的Red Hat的Container Platform。OpenShift可以分配有資源,并且可以管理按比例放大和縮小這些資源。它還可以管理混合云環境,其中一些資源在內部,而其他資源在公共云中。
集群要求更多資源的想法是一回事。如果要運行多個集群怎么辦?
多個集群
問題開始時就像將開發,測試和生產集群作為單獨的實體一樣簡單。沒有此限制(或專門的節流限制),彈性群集的性能/負載測試可能會取出生產群集。此外,還需要高可用性,這可能意味著云提供商中不同區域中的多個群集。然后,您將擁有不同的運營部門,在不同的國家/地區運行多個集群,并具有將客戶路由到其大陸上的數據中心的功能。
IBM云平臺的CTO Jason McGee解釋說這是一個乘法問題。算一下,一個跨國公司可能會有數十個不同的Kubernetes集群。這使您對所發生的事情有了一個整體的了解,這是一個挑戰-更不用說實際管理資源和成本了。
為了管理自己的22,000多個集群云,IBM構建了Razee,該工具后來可以作為開源提供。
其他選擇
在歷史的這一點上,應對擴展Kubernetes的挑戰基本上是自愿成為一家全面的數字公司。這為亞馬遜服務,將Web服務變成了74億美元的業務。如果您的公司不是亞馬遜公司,那么您可以考慮一下荷馬·辛普森的話:“其他人不能這樣做嗎?”
作為另一種選擇,您可以考慮群集的用途。您可能需要做一些非常具體的事情,而不是廣泛進行,例如在Hadoop中進行大數據挖掘,或啟用像Redis這樣的NoSQL數據庫。像Redis Labs這樣的專業提供商已經開始創建托管服務產品,旨在處理一個應用程序并很好地處理它。Redis的產品推廣員AlexMi?owski解釋了公司如何理解這些擴展問題,并創建了一個操作員工具來管理運行Redis NoSql數據庫的Kubernetes集群。該服務產品可以在云中的本地群集(內部部署)中作為云中的托管服務工作,甚至可以管理在裸機服務器上本地運行的Redis。
在未來的24個月中,我預計專業云服務將有所增長,隨后這些服務將被主要的云服務提供商收購,或者由云服務提供商創建自己的競爭產品。
因此,請注意,不要眨眼。事情正在快速變化,您不想錯過它。
總結
以上是生活随笔為你收集整理的想基于K8s按需扩展应用程序,可从这几方面入手的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从案例角度解析建模平台动态规则引擎
- 下一篇: EntityFramework Core