JavaRush /Java Blog /Random-TW /Docker、Kubernetes、OpenShift 是誰?它們之間有何關係?
Павел
等級 11

Docker、Kubernetes、OpenShift 是誰?它們之間有何關係?

在 Random-TW 群組發布
這一切都從包裝開始。 例如,在工業開發中,需要對組裝好的應用程式進行“打包”,以便將其以開發人員在自己的計算機上組裝的形式傳輸到將要工作的伺服器上,這樣的“打包”應該作為一種保護。這消除了意外情況,例如應用程式在測試期間正常工作,但在轉移到生產環境時中斷。此外,「打包」將位於同一伺服器上的一個應用程式與另一個應用程式隔離,這種隔離允許一個應用程式不干擾另一個應用程式的工作(例如:一個應用程式將無法接管所有伺服器的RAM,從而使第二次應用到其命運)。用微服務架構「打包」的優勢尤其明顯,這是可以理解的;有很多微服務——很多小應用程式必須相互通信,但同時又不應該互相干擾。一個例子是抽屜櫃(服務器),裡面有許多不同的抽屜,我們可以輕鬆地將不同的襪子從一個抽屜移到另一個抽屜,同時它們不會相互混合或與內褲混合。 Docker、Kubernetes、OpenShift 是誰?它們之間有何關係? - 1 打包是由虛擬化工具創建的。曾幾何時,虛擬機器(VM)被用作「包裝」。老人家會記得他們是如何在虛擬機器中在 Vista 上部署 Windows XP 的。現在,用於應用程式打包的虛擬機器已成為過去。容器已經佔領了世界。因為它們:更輕、更有效率、更安全。 更詳細地說:容器與虛擬機器有何不同? Docker、Kubernetes、OpenShift 是誰?它們之間有何關係? - 2 您需要記住容器的一些優點: • 體積更小(佔用伺服器記憶體更少);• 有權存取共享伺服器資源(RAM、處理器運算時間);• 對其他環境具有更好的可移植性(從測試到工業);• 提供更高的啟動速度(由於容器重量輕,因此啟動速度更快)。 Docker 是容器之母。 當他們說容器時,他們指的是 Docker。Docker 是用於在容器化環境中自動部署和管理應用程式的軟體。透過範例,Docker 是線上設計師和帶有起重機的 3D 列印機的結合體。也就是說,他可以先為容器設計一個模板(圖像),根據給定的條件(圖像)列印(創建)容器,然後將其移動到需要的地方。使用 Dockerfile 代替槓桿。管理過程很簡單:您編寫文件、命令,運行它們,然後看看會發生什麼。 Docker、Kubernetes、OpenShift 是誰?它們之間有何關係? - 3 初識Docker Docker Compose-升級版Docker 現在讓我們來看看需要在一個位置運行多個容器的場景。用於此目的的實用程式是 Docker Compose。Docker Compose 是 Docker 附帶的工具。它旨在解決與專案部署相關的問題。Docker 和 Docker Compose 之間的差異:Docker 用於管理單一容器。Docker Compose 用於同時管理多個容器。該工具提供與 Docker 相同的功能,但允許您使用更複雜的結構。 Docker、Kubernetes、OpenShift 是誰?它們之間有何關係? - 4 使用 Docker Compose 的典型場景:假設您是一個 Web 專案的開發人員。該項目包括兩個網站。第一個允許商務人士只需點擊幾下即可建立線上商店。第二個目標是客戶支援。這兩個網站與同一個資料庫互動。你的專案越來越受歡迎,結果發現它運行的伺服器的能力已經不夠了。因此,您決定將整個專案移至另一台機器上。如果您還沒有使用過 Docker Compose 之類的東西,那麼您將不得不一次遷移並重新配置一個容器,希望您在過程中不會忘記任何事情。如果您使用 Docker Compose,那麼將您的專案移至新伺服器是只需執行幾個命令即可解決的問題。為了完成專案到新位置的轉移,您只需進行一些設定並將資料庫的備份副本上傳到新伺服器即可。典型的 DockerComposer: Docker、Kubernetes、OpenShift 是誰?它們之間有何關係? - 5 這裡要記住的是:容器是「打包」應用程式的主要手段。Docker 處理容器、建立容器映像、拾取和移動容器。為了同時管理一堆容器,使用了 Docker Compose,它包含在 Docker 中。這些程式是免費軟體(免費贈品 - 簡而言之) Kubernetes (K8s) - Docker 自動化 因此我們部署了容器,我們知道如何將它們「批量」從一台機器傳輸到另一台機器。但突然有一個容器掉了下來!怎麼辦?誰會再提出這個問題? Docker、Kubernetes、OpenShift 是誰?它們之間有何關係? - 6 當然,您可以透過 Docker 手動執行此操作。但你必須做一些事情,寫一些東西,你需要某種自動化工具。這就是 Kubernetes(簡稱 K8s)發揮作用的地方,它也將處理容器的管理和編排(相關實體的自動化管理)。有了 K8,您無需日夜監控容器。定義行為場景就足夠了,K8s 會自己完成所有事情。Kubernetes 的主要特性 1. 提供可擴充性和設定管理。2.你可以描述部署叢集時想要得到什麼,K8s就會做到。例如指定pod數量,為它們分配多少內存,表示在 pod 上部署(在容器中)的應用程式的副本(實例)數量。3. 負責維護系統處於某種狀態;如果有東西掉落,那麼K8s會根據既定的配置撿起它。這裡您需要記住的是: Kubernetes 是一個用於編排容器化應用程式的工具 - 在叢集中自動部署、擴展和協調。支援主要的容器化技術,包括 Docker。K8s 是開源軟體。 Docker、Kubernetes、OpenShift 是誰?它們之間有何關係? - 7 OpenShift 是虛擬化世界中的法拉利,酷、快、貴 。聊完正題,讓我們繼續聊 OpenShift。 OpenShift是Kubernetes的一個附加元件,提供額外的功能 ,可以立即使用,不需要漫長而痛苦的配置,可以立即投入生產。看看 Kubernetes 上面有多少種不同的圖示。他們每個人都做自己很酷的事。 Docker、Kubernetes、OpenShift 是誰?它們之間有何關係? - 8 OpenShift 的亮點: • 與 K8s 不同,它是付費產品;• 開箱即用的DevOps,支援基本的藍/綠、金絲雀部署場景;• 內建Jenkins 支援;• 提供方便的工具來管理和使用叢集;• 具備更嚴格的安全模型和內建監控。值得再次強調的是,與 Kubernetes 不同,OpenShift 是一款付費產品。不同之處在於:如果我們採用裸 Kubernetes,那麼我們自己解決所有問題。如果我們談論 OpenShift,它是紅帽的產品,作為付費支援的一部分解決了新出現的問題。總結一下: 在工業開發中,需要對應用程式進行“封裝”,這種方式在微服務架構中尤其重要。容器是封裝應用程式的主要手段。Docker 處理容器、建立容器映像、拾取和移動容器。為了同時管理一堆容器,使用了 Docker Compose,它包含在 Docker 中。這些程式是免費軟體。Kubernetes(K8s) 是一種用於編排容器化應用程式的工具 - 在叢集中自動部署、擴展和協調。支援主要的容器化技術,包括 Docker。K8s 是開源軟體。OpenShift 是 Kubernetes 的一個附加元件,提供額外的功能。與 K8s 不同,這是一款付費產品,供企業使用。提供開箱即用的 DevOps:支援主要部署場景藍/綠、金絲雀,內建對 Jenkins 的支持,並提供用於管理和使用叢集的便捷工具。擁有更嚴格的安全模型和內建監控。 對於那些渴望編碼的人: 將 Spring Boot 應用程式打包到容器中 如何在 Docker 中部署 Postgres 並連接到 Spring-Boot 應用程式 網路研討會:Docker - 如何使用容器?— Java 後端開發
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION