Kubernetes – 容器編排簡介

wongchaofan發表於2024-06-05

在本文中,我們將研究 Kubernetes 中的容器編排。但首先,讓我們探索容器興起的趨勢、容器編排的需求,以及它如何為 Kubernetes 佔據主導地位和發展創造空間。

技術滲透到我們日常生活的方方面面,對軟體、銷售和交付基於軟體的產品或僅在業務中使用軟體的公司和組織產生了巨大的需求。這種壓力刺激了創新和標準化。需求和風險如此之高,從根本上改變了軟體的開發和部署方式。但這種演變並非沒有先例。你能想象世界經濟依靠船舶等方式進行商品貿易嗎?!你不可能及時拿到你的新 iPhone。現在我們理所當然地認為集裝箱可以在不同的運輸方式、不同的船東和航運公司之間高效移動,並且標準化無處不在,幾乎在世界任何地方都可以使用,無論它裝在什麼地方。現代軟體變得非常相似。隨著軟體系統變得越來越複雜,這種複雜性促使軟體被分成更小的部分,例如微服務。無論它們是否被稱為微服務,這些較小的軟體都需要被打包、構建、部署和由周圍的其他軟體訪問,才能作為一個完整的系統執行。

這些小軟體片段可以部署到容器中,這樣它們就可以在同一臺虛擬機器或真實機器上執行,但對軟體來說,它似乎是唯一正在執行的程序。在這裡,我們稍微偏離了集裝箱的比喻。雖然容器的唯一工作通常是將東西包含在自身內,但有用的軟體通常依賴於周圍的其他軟體來完成其工作。這就是容器編排需求的誕生。將邏輯上不同的軟體彼此分開確實有好處,當它們不在同一模組中時,您可以開發、部署、擴充套件和維護每個小片段,而不必在系統的其他部分之間進行過多的麻煩。但是,在某些時候,應用程式的不同部分可能會相互通訊以執行任務。例如,API 可能需要與業務邏輯進行通訊,而業務邏輯又需要訪問資訊或資料庫。

容器本身將邏輯上不同的軟體部分分開,以便它們可以自行構建、部署、維護、管理和擴充套件,而不會過度影響系統的其他部分。

另一方面,容器編排定義了這些容器如何作為一個系統進行互動,彼此之間的需求以及如何將它們組合成高效能、可管理、可靠且可擴充套件的系統。目前可以肯定地說,docker 是容器技術和應用領域的主導者,而其他公司也在這個領域佔據主導地位,當你提到容器時,它們幾乎就是 docker 的代名詞。其他參與者存在於小眾應用程式中,一些圍繞標準化的動向正在發生,儘管 docker 檔案標準還處於萌芽階段,但它本質上是當今的標準,docker 儲存庫定義了在開發人員之間以及在需要使用它們的系統之間託管容器版本的主要方式,例如 kubernetes 等編排系統。

由於容器編排是一個較新的領域,自採用容器以來才開始發展,因此這些技術較新並且仍在不斷髮展。然而,Kubernetes 相當先進,隨著亞馬遜網路服務最終加入其競爭對手並擁抱 Kubernetes,它得到了幾乎所有主要參與者和雲端計算的支援,這些參與者和雲端計算都是透過雲原生計算基金會(也稱為 CNCF)進行的。這是現在管理 Kubernetes 的組織。它基本上已經成為事實上的標準,特別是現在它正在與替代競爭技術 docker swarm 競爭,Dockers 的容器編排解決方案現已宣佈支援 Kubernetes 風格的配置和處理,很明顯,Kubernetes 現在是事實上的標準,即使不是業界和容器編排中公認的標準。

容器化改變了軟體的開發和打包方式,容器編排正在改變容器部署到更大有用的系統中的方式。

相關文章