如果我有一個多層應用程序(比如web/logic/database),每個層都有自己的容器,並且我需要部署所有這些容器,他們都必須進入同一個吊艙?如何使用Kubernetes部署多層應用程序
如果它們在同一個窗格中,這對於可運行的應用程序的最大大小是否有任何影響?
還是有一些更高層次的抽象,我可以用它來啓動所有三層,但讓他們在不同的爪牙上運行?
如果我有一個多層應用程序(比如web/logic/database),每個層都有自己的容器,並且我需要部署所有這些容器,他們都必須進入同一個吊艙?如何使用Kubernetes部署多層應用程序
如果它們在同一個窗格中,這對於可運行的應用程序的最大大小是否有任何影響?
還是有一些更高層次的抽象,我可以用它來啓動所有三層,但讓他們在不同的爪牙上運行?
爲什麼您需要將所有組件部署在一起?在微服務體系結構中,您希望將每個圖層之間的依賴關係減少到一個乾淨的界面,然後允許將每個圖層與其他圖層分開部署和縮放。
如果您需要將它們部署在一起(例如它們共享本地磁盤或本地主機網絡),那麼您需要將它們部署爲單個羣集。一個單元是一個原子調度單元,因此它將被部署到一臺主機上。由於它位於單個主機上,因此將應用程序的可擴展性限制爲單個主機的大小(不允許隨着流量的增加進行擴展)。
如果你的三層不緊密耦合,那麼你可以在不同的pod中運行它們,這使得它們可以在多個主機上進行調度(或者如果你正在進行本地開發,則可以在同一主機上進行調度)。要將Pod連接在一起,您可以定義services。
您應該看看guestbook example,它說明了如何爲在Kubernetes上運行的簡單多層Web應用程序定義窗格和服務。
我正在考慮這裏的一所舊學校申請,我想收藏。 因此,「部署應用程序」意味着部署所有組件。他們可以在單獨的機器上運行,但從用戶角度來看,應用程序只有在它們全部啓動並運行之後才能部署。 所以我想要做的是創建一個「邏輯部署單元」,它是應用程序的所有必需組件,並在單個操作中進行部署。 由於上述可擴展性的原因,我不希望僅限於單個主機。 –
如果你把所有yaml文件放到一個目錄中,你可以用一個命令創建所有的應用程序資源('kubectl create -f
這傢伙並沒有提到任何關於微服務的事情。奇怪的接受答案;) – mhstnsc