什麼是 AWS 上的 Kubernetes?
Google Labs 建立了 Kubernetes,這是一個容器管理平臺,用於在多種環境中管理容器化應用程式,包括物理、虛擬和雲基礎設施。它是一種開源技術,有助於開發和控制應用程式容器化。Kubernetes 可以自動化跨叢集的應用程式容器的分佈、擴充套件和管理。它可以構建以容器為中心的 基礎設施。在物理和虛擬機器基礎設施叢集上執行應用程式是 Kubernetes 的核心功能之一。它還能夠在雲上執行應用程式。它有助於向以容器為中心而不是以主機為中心的 基礎設施過渡。
使用 Kubernetes 具有一定的優勢,例如 -
Kubernetes 使您能夠建立複雜的容器化應用程式並在伺服器叢集上高效地執行它們。
Kubernetes 提供了可移植性和快速、簡單的部署。企業可以透過根據需要使用各種雲服務提供商來擴充套件,而無需重新設計其基礎設施。
Kubernetes 在應用程式和基礎設施級別都處理高可用性;如果配置正確,Kubernetes 會幫助保持您的應用程式始終執行,即使一個 Kubernetes 節點離線也是如此。
Kubernetes 的工作原理
根據可用的計算資源和每個容器的資源需求,Kubernetes 管理計算例項叢集並在叢集上排程容器的執行。您可以將一個或多個容器一起作為 Pod 執行,Pod 是容器的自然分組。
Kubernetes 的控制平面軟體確定何時何地啟動您的 Pod,控制流量路由,並根據您指定的用法或其他標準擴充套件您的 Pod。根據其資源需求,Kubernetes 會自動在您的叢集上啟動 Pod,並在它們或其正在執行的例項未能交付時重新啟動它們。Kubernetes 使用分配給每個 Pod 的 IP 地址和唯一的 DNS 名稱將您的服務相互連線以及連線到外部流量。
在 Amazon EC2 機器上安裝 Kubernetes
Amazon EC2 例項是虛擬伺服器,它在 Amazon 的彈性計算雲 (EC2) 中的 AWS 架構上執行應用程式。使用 Amazon EC2,您可以根據需要部署任意數量的虛擬伺服器,設定安全的網路並控制儲存。使用者無需預測流量,因為 Amazon EC2 允許您擴充套件或縮減以管理不斷變化的需求或受歡迎程度的峰值。
在不使用 Amazon 的託管容器服務的情況下,您必須首先在 AWS 上安裝 Kubernetes 發行版之前建立必要的 Amazon EC2 例項。因為 Amazon 提供虛擬機器來託管您的 Kubernetes 節點,所以使用者負責預配 VM 以及安裝和管理 Kubernetes。
Kubernetes 與 Amazon EKS
Elastic Kubernetes Service (Amazon EKS) 是一種託管服務,可簡化在 AWS 上執行 Kubernetes 的操作。組織可以使用 EKS 執行 Kubernetes,而無需設定和維護控制平面或工作節點。簡單來說,EKS 使在 AWS 上管理和維護高可用 Kubernetes 叢集變得非常容易。
每個 EKS 叢集的兩個主要組成部分是 -
控制平面 - 控制平面由三個不同的可用區 (AZ) 中的三個 Kubernetes 主節點組成。網路負載均衡器充當所有傳入 Kubernetes API 流量的閘道器 (NLB)。它在 Amazon 的虛擬化私有云上執行。控制面板完全由 AWS 管理,公司無法直接管理。
工作節點 - Amazon EC2 例項託管工作節點。您可以將任何 AWS 例項用作工作節點。可以手動預配這些工作節點或透過 SSH 連線它們。控制平面負責監督和跟蹤容器的啟動位置和時間,而工作節點叢集則維護和執行組織的容器。AWS 設定、擴充套件和安全地管理控制平面,而工作節點使用 EKS 在 EKS GUI、CLI 或 API 中只需一個命令即可提供。
可以使用 AWS 管理控制檯快速使用 EKS 設定新的 Kubernetes 叢集。之後,可以像在任何其他 Kubernetes 設定中一樣在新的叢集中排程容器化應用程式。如果您使用 EKS,則無需安裝 Kubernetes、管理或監控工具,也無需提供您的節點。要升級到可用的更新版本的 Kubernetes,您仍然需要執行一些手動操作。
結論
目前最好的託管 Kubernetes 解決方案是在 AWS 上執行 Kubernetes。更新過程非常順利,可擴充套件性極佳。與其他 AWS 服務的緊密整合是使用 Kubernetes 與 AWS 的主要優勢。
在 AWS 上執行 Kubernetes 將釋放您公司的時間,使其能夠專注於核心產品,同時免除管理基礎設施的麻煩。它還有助於減少對額外 IT 人員的需求,使您的產品能夠滿足來自使用者群不斷增長的需求。