什麼是容器協同運作?
容器協同運作是將容器的網路和管理自動化的過程,以便您可以大規模部署應用程式。容器化可將應用程式的程式碼與在任何基礎設施上執行所需的所有檔案和程式庫繫結在一起。隨著使用的應用程式越來越多且日益複雜,微型服務架構可能會有數百、甚至數千個容器。容器協同運作旨在透過將容器的完整生命週期自動化 (從佈建和排程到部署和刪除),以簡化容器基礎架構管理。組織可以從大規模容器化中受益,而無需承擔額外維護費用。
為何需要容器協同運作?
容器已成為雲端原生應用程式的標準運算單元。雲端供應商提供用於執行各種運算工作負載的虛擬伺服器執行個體,非常適合容器型工作負載。能夠執行容器的唯一要求是伺服器本身要執行像是 Docker 的容器化服務。Docker 是一種開放原始碼工具,用於將軟體和相關聯程式庫、系統工具、程式碼和執行期封裝到容器中。它是一個輕量型解決方案,用於在單一伺服器執行個體上執行和管理一些容器,但是擴展成為一項挑戰。
在受管容器協同運作平台存在之前,組織使用複雜的指令碼來管理多部機器之間的容器部署、排程和刪除。維護這些指令碼產生了挑戰,例如版本控制和設定難以擴展。容器協同運作可以自動化並解決這些複雜問題,消除與手動管理相關聯的挑戰。
容器協同運作使用案例
當您必須執行下列作業時,容器協同運作工具將成為必要項目:
- 跨多個執行個體管理和擴展容器。
- 執行許多不同的容器化應用程式。
- 一次執行不同版本的應用程式 (例如,跨 CI/CD 測試和生產)。
- 執行容器的多個重複執行個體 (複本),以確保伺服器發生故障時應用程式服務持續性。
- 在多個不同的地理區域執行應用程式的多個執行個體。
- 針對預算目的,將多個伺服器執行個體的使用量最大化。
- 執行由數千個不同微型服務組成的大型容器化應用程式。
容器協同運作有哪些優點?
在沒有容器協同運作解決方案的情況下管理複雜的容器架構可能相當困難。容器協同運作可管理容器建立、組態、排程、部署和刪除。它也支援:
- 應用程式負載平衡和流量管理。
- 跨容器的應用程式服務持續性。
- 跨容器化的安全。
- 容器狀態監控。
- 從基礎伺服器或執行個體資源管理容器資源。
以下是容器協同運作的更多優點。
內建恢復能力
如果容器離線,簡單的容器化服務通常不會重新啟動容器。同樣地,如果執行容器所在的機器故障,則在機器重新啟動時,容器不會重新啟動。容器協同運作解決方案可以確保容器自動重新啟動,或在機器故障時隨時執行多個版本。
增強的效能
容器協同運作的其中一個最大優點是它可以自動化容器化應用程式的可擴展性、可用性和效能。您可以設定容器協同運作工具,根據需求、網路可用性和基礎設施限制進行擴展。容器協同運作解決方案可監控整個容器網路的效能,並自動重新設定容器以獲得最佳效能。
資源優化
基礎伺服器和執行個體需要成本才能執行,並且必須有效率地使用才能最佳化成本。容器協同運作可讓組織最大限度地利用每個可用執行個體,並在資源耗盡時執行個體化隨需執行個體。這可以節省基礎設施的成本。
容器協同運作如何運作?
容器是以 Linux 為基礎的獨立應用程式或微型服務,可與幾乎任何類型的機器上執行所需的所有程式庫和函數搭配。容器協同運作是透過管理伺服器執行個體群組 (也稱為節點) 之間的容器來運作。執行互連容器的節點群組稱為叢集。
容器協同運作首先需要在叢集中每個節點上執行的基礎容器化解決方案,通常是 Docker。節點也必須執行協同運作工具。具有控制平面的指定主節點是協同運作解決方案本身的控制器。解決方案的管理員使用主節點上的 GUI 或命令列控制器來管理和監控容器協同運作工具。
建立和排程
容器協同運作解決方案會讀取以 YAML 或 JSON 格式撰寫的宣告式組態檔案,以了解系統的特定必要狀態。使用檔案中指定的資訊,工具:
- 從容器登錄取得容器映像。
- 以容器的個別要求佈建容器。
- 決定容器之間所需的網路。
然後該工具會在叢集之間排程並部署多容器應用程式。這個節點和容器之間的最合適程度是由容器協同運作工具決定,而不是在組態檔案中指定。該工具會根據節點的資源限制 (例如 CPU、記憶體等) 以及定義的容器要求,選取用來執行每個容器的實際節點。
管理
一旦容器在叢集之間執行,協同運作工具會管理整體系統運作狀態,以確保它保持在指定的效能狀態。這可能包括:
- 跨容器的資源分配。
- 將容器部署到新節點,或刪除容器。
- 對應用程式的流量進行負載平衡。
容器協同運作解決方案可管理容器的生命週期,以最佳化和保護大型、複雜的多容器工作負載和環境。它可以根據組織需要管理任意數量的容器化應用程式。執行多個主節點以取得高可用性和容錯能力,通常是在較高的組織需求下才這麼做。
容器協同運作有哪些挑戰?
以下是容器協同運作的一些挑戰。
其他管理層
Kubernetes 是一種廣泛用於組織的開放原始碼容器協同運作解決方案。它以其易用性、跨平台可用性和開發人員支援而聞名。但是,它仍然需要基礎資源管理。您現在必須管理 Kubernetes 的資源佈建,而不是容器。雲端原生容器協同運作工具是更好的選擇,因為它們可以自行管理自己的資源要求。
訓練不足
僅擁有合適的工具並不足以確保最佳的容器協同運作。您還需要熟練的工具管理員來正確處理協同運作、定義所需狀態,並了解監控輸出。成為複雜容器環境的成功管理員必須對 DevOps 和 CI/CD 程序、容器化和機器架構有深入了解。可能需要訓練才能在團隊中建置正確的技能。
版本控制組態
軟體應用程式是版本化,它具有特定的組建,適用於開發、測試和生產等特定環境。同樣地,容器協同運作工具也需要具有版本歷史的多個記錄組態,這意味著它們可以處理快速、可重複的佈建以及部署和管理。
AWS 如何支援您的容器協同運作要求?
Amazon ECS 是全受管容器協同運作服務,讓組織在 AWS 上大規模建置、部署及管理容器化應用程式。它是無版本的,並自動管理叢集佈建。您可保留對容器作業屬性的控制權,並可指定 CPU 與記憶體需求、聯網與 IAM 政策,以及啟動類型與資料磁碟區。只需進行 API 呼叫,便可以啟動和停止以容器為基礎的應用程式,查詢叢集的完整狀態,存取熟悉的功能,包括安全群組、Elastic Load Balancing (ELB)、Amazon Elastic Block Store (EBS) 磁碟區和 Identity Access Management (IAM) 角色。
針對使用 Kubernetes 進行容器協同運作的使用者而言,Amazon Elastic Kubernetes Service (Amazon EKS) 是一項受管 Kubernetes 服務,用於在 AWS 雲端和內部部署資料中心執行 Kubernetes。在內部部署,EKS 提供一致、完全支援的 Kubernetes 解決方案,您可取得整合式工具和 AWS Outposts 部署、虛擬機器或伺服器。在雲端,Amazon EKS 能夠自動管理 Kubernetes 控制平面節點的可用性和可擴展性,而這些節點負責一系列任務,包括排定容器的行程、管理應用程式可用性、存放叢集資料等等。您可以使用 AWS 基礎設施的所有效能、規模、可靠性和可用性,以及與 AWS 聯網和安全服務整合。
立即建立帳戶,開始使用 AWS。