了解 Kubernetes 與 Docker 是雲端原生中最重要的主題之一和 DevOps。Kubernetes 與 Docker 當中肯定屬於某個對話,然而事實上不應該互相比較。事實上,Kubernetes 與 Docker 不彼此競爭。因此,請將這些技術視為可以互補和相互搭配使用的兩個技術。
您知道有哪些可能面臨的狀況?若要了解,您必須先了解 Kubernetes 與 Docker 的特定區域是否重疊及對比。
Docker 是應用程式容器的開放原始碼平台。不過,如果這個概念是新的,一個容器就是獨立的封裝格式,將所有必要的程式碼與相依性都轉換成可執行檔格式。舉現實世界當作比喻,容器就像 IKEA 的包裝,裡面有桌子的所有組件、支架和螺絲 (當然還有六角扳手) - 但除了包含所有的組件外,當您執行容器時,它還為您建造了桌子。
應用程式開發者通常會使用 Docker,因為它輕量化且標準化的格式。這些特性讓開發者能夠彈性與擴充能力建置、測試及部署。
Docker 在 IT 產業中也有另一個意義 - 一個名為 Docker,Inc。的實際公司開發了平台內的工具。此差異非常重要,因為指定重疊的名稱。
如果 Docker 是單一容器,Kubernetes 是一次管理多個容器的工具。與 Docker (平台而非公司) 相同,Kubernetes 是開放原始碼平台,但由雲端原生運算基礎作為包含 2,300 個以上的參與者的專案管理。Kubernetes 的運作就像雲端作業系統一樣,不僅簡化了跨虛擬機器和雲端管理流程,還能讓 IT 部門大規模處理物。
什麼是 Kubernetes?Kubernetes 與本機系統上所找到的任何系統管理種類都類似,這只是容器的規模。在 Kubernetes 內進行佈建、更新、排程、刪除及一般狀況監控。回到 IKEA 的比喻,如果一個容器是一張桌子,那麼 Kubernetes 就像設施經理,在 IKEA 的倉庫裡實現訂購、分發和檢查桌椅和其他包裝傢俱的狀態。
Docker 和 Kubernetes 討論的遺漏片段,就是容器執行階段的定義。什麼是容器執行階段?簡而言之,就是將容器往回執行 IKEA 系譜的引擎,容器執行階段是盒內裝的組件指示。在某些情況下,這樣做相當簡單,而且執行管理會以稱為低層次容器執行階段來處理。對於更複雜的狀況,高階容器執行階段提供了 API 整合、映像檔格式及映像檔管理的方向。在某些情況下,該術語可能會與 Docker 交替使用,不過這個詞的意義就多出了。
Kubernetes 執行稱為容器執行階段介面 (CRI) 的 API。此介面與每個容器執行階段搭配使用,以執行套裝程式。同樣地,使用 IKEA 的比喻時,Kubernetes 的 CRI 是讀取套件 (容器) 內的組件指令 (容器執行階段) 的人員。
除了 Docker 之外,其他容器執行階段存在。其他常見的案例包括:
Containerd:Containerd U 一開始是 Docker 專案的一部分。不過,這目標是讓 Docker 更具彈性且模組化,讓開發者選擇將容器區分開來自己的專案。Containerd 可處理高階容器執行階段需求,例如從登錄、映像檔管理提取映像檔,以及與低層次程式執行階段整合,以執行容器處理作業。
CRI-O:CRI-O 是 Docker 的另一個開放原始碼容器執行階段替代方案。它會實作 Kubernetes 容器實際實作介面 (CRI),啟用與 Open Container Initiative 標準相容的程式實際實作。
CRI-O 和 Containerd 兩者都使用 CRI 提供的規格,使其完全與 Kubernetes 相容。
與 Kubernetes 的比較常會討論 Docker 與 Kubernetes,不過事實是兩者不能彼此直接競爭。本文中使用的 IKEA 系列顯示它們的相關性和為何是執行現代化 IT 管理的關鍵,但沒有競爭對手。而是雲端原生生態系統的一部分。Docker 容器是 Kubernetes 所管理的內容中的一部分,而 Kubernetes 的優點是輕鬆擴充 Docker 容器的量。
因此,問題不是「我選擇 Docker 或 Kubernetes?」因此,IT 主管的主要代價如何就管理和作業而言,他們會一起使用 Kubernetes 與 Docker。
Kubernetes 與 Docker 都是一起運作的。雖然您不需要使用 Kubernetes 管理 Docker 部署,但萬一您必須管理多個部署執行處理,卻是有效的戰略。這特別適用於在使用相同應用程式的多個部署以及需要調整規模的情況。Kubernetes 協調流程系統的開放原始碼本質,確保可跨多部伺服器管理複雜性。
從 Kubernetes 中,許多 Docker 套裝程式都可以在處理隨選要求時,透過諸如修補程式與更新等功能進行批次處理,以及對問題進行規模的監控,進行部署和管理。藉助 Kubernetes,IT 部門便可:
Oracle Cloud Infrastructure 提供多種服務來加速及打造現代化雲端原生應用程式。尤其是 Container Engine for Kubernetes 和容器登錄,它們能夠管理和分析 Docker 映像檔,這些工具能夠提升管理效率及提升效能。免費試用 Oracle Cloud 取得 Kubernetes,了解您的身分。
在2020年3月義大利龐貝考古公園關閉後,任何重新開放的計畫都需要一定的管理和控制措施,以確保社會距離。允許遊客存取由數個所選 Oracle 產品提供技術支援的新 MyPompeii App,以加速雲端原生行動解決方案 (包括 Oracle Container Engine for Kubernetes 和 Oracle Container Registry)。
位於倫敦的 Snap Vision 提供人工智慧所提供的視覺化搜尋技術,協助購物者找出他們愛的衣物。隨著 COVID-19 強迫店內購物基本上關閉,Snap Vision 技術會提供給英國零售商,協助建立數位購物體驗。擴充是一項重大挑戰,然而 Snap Vision 可藉由與 Kubernetes 的「Oracle Cloud Infrastructure」以低成本代管新零售商環境。