您好,登錄后才能下訂單哦!
這篇文章主要講解了“Kubernetes設計模式有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Kubernetes設計模式有哪些”吧!
Kubernetes中有很多重要的概念,但理解這些設計模式是最重要的:
為了幫助您理解,受GoF設計模式的啟發,下面將模式組織為以下幾個類別。
這些模式代表了容器化應用程序必須遵守的原則和最佳實踐,以便成為優秀的云原生公民。無論應用程序的性質如何,您都應該遵循以下指導原則。遵循這些原則將有助于確保您的應用程序適合于Kubernetes上的自動化。
運行狀況探測要求每個容器都應該實現特定的api,以幫助平臺以盡可能健康的方式觀察和管理應用程序。為了實現完全自動化,本地云應用程序必須具有高度可觀察性,允許推斷其狀態,以便Kubernetes能夠檢測應用程序是否已啟動并準備好為請求提供服務。這些觀察結果會影響Pods的生命周期管理以及何時將應用程序對外提供服務。
可聲明的需求解釋了為什么每個容器都應該聲明其資源概要文件,并將其限制在指定的資源需求中。成功的應用程序部署、管理和在共享云環境上共存的基礎依賴于識別和聲明應用程序的資源需求和運行時依賴關系。此模式描述您應該如何聲明應用程序需求,無論它們是運行時強依賴項還是資源需求。聲明您的需求對于Kubernetes在集群中為您的應用程序找到合適的位置至關重要。
自動放置解釋了如何影響多節點集群中的工作負載分布。放置是Kubernetes調度程序的核心功能,用于將新的pod分配給滿足容器資源請求和執行調度策略的節點。該模式描述了Kubernetes調度算法的原理以及如何從外部影響內部調度決策。
擁有良好的云原生容器是第一步,但還不夠。下一步是重用容器并將它們組合到Pod中,以實現預期的結果。這個類別中的模式關注于在Pod中構造和組織容器,以滿足不同的用例。為了影響Pod中的容器導致產生了這些模式。
Init容器為與初始化相關的任務和主應用程序容器引入了一個單獨的生命周期。Init容器通過與初始化相關的任務提供與主應用程序容器不同的獨立生命周期,最終實現了關注點的分離。該模式引入了一個基本的Kubernetes概念,當需要初始化邏輯時,都可以使用這個設計模式。
Sidecar描述了如何在不更改現有容器的情況下擴展和增強其功能。該模式是一種基本的容器模式,允許單一用途的容器緊密合作。
這些模式描述了管理平臺確保了Pods的生命周期。根據工作負載的類型,Pod可以作為批處理作業運行到完成為止,或者被安排定期運行。它也可以作為守護進程服務或單例運行。選擇正確的生命周期管理原語將幫助您以所需的方式運行Pod。
Batch Job描述如何運行獨立的原子工作單元直到完成。此模式適合于在分布式環境中管理孤立的原子工作單元。
StatefulSet描述如何使用Kubernetes創建和管理分布式有狀態應用程序。這類應用程序需要諸如持久標識、網絡、存儲和序數等特性。StatefulSet原語為這些構建提供了強有力的保證,非常適合管理有狀態應用程序。
服務發現解釋了客戶機如何訪問和發現提供應用程序服務的實例。為此,Kubernetes提供了多種機制,這取決于服務使用者和生產者是位于集群上還是集群外。
這個類別中的模式更復雜,代表更高級別的應用程序管理模式。這里的一些模式(如Controller)是永恒的,Kubernetes本身就是建立在它們之上的。
Controller是一種模式,它主動監視和維護一組處于所需狀態的Kubernetes資源。Kubernetes的核心本身由一系列控制器組成,這些控制器定期監視并協調應用程序的當前狀態與聲明的目標狀態。此模式描述了如何利用這個核心概念為我們自己的應用程序擴展平臺。
Operator是一個控制器,它使用CustomResourceDefinitions將特定應用程序的操作知識封裝為特定結構和自動化形式。Operator模式允許我們擴展控制器模式以獲得更大的靈活性和表現力。Kubernetes的Operator越來越多,這種模式正成為操作復雜分布式系統的主要形式。
如今,Kubernetes是最受歡迎的容器編排平臺。它是由前沿軟件公司共同開發和支持的,并由所有主要的云提供商作為服務提供。Kubernetes支持Linux和Windows系統,以及所有主要的編程語言。這個平臺還可以編排和自動化無狀態和有狀態的應用程序、批處理作業、定期任務和無狀態服務工作負載。這里描述的模式是Kubernetes提供的更廣泛模式中最常用的模式,如下所示。
Kubernetes是應用程序可移植層、也是云上每個應用程序的共同基礎設施。如果你是一個軟件開發人員或架構師,Kubernetes很可能會以這樣或那樣的形式成為你生活的一部分。學習這里描述的Kubernetes模式將改變您對這個平臺的看法。我相信Kubernetes和由此產生的概念將成為面向對象編程概念的基礎。
這里的模式是用于容器編排的GoF設計模式。閱讀這篇文章一定不是結束,而是你Kubernetes之旅的開始。
感謝各位的閱讀,以上就是“Kubernetes設計模式有哪些”的內容了,經過本文的學習后,相信大家對Kubernetes設計模式有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。