什麼是 Azure Kubernetes Service?

已完成

讓我們從幾個定義開始,並透過 Azure Kubernetes Service (AKS) 進行快速導覽。 本概觀提供的資訊可協助您判斷 AKS 是否為適合您容器化管理策略的良好平台。

什麼是容器?

「容器」是軟體的不可部分完成單元,其可封裝特定應用程式的程式碼、相依性及設定。 容器可讓您將整合型應用程式分割成構成解決方案的個別服務。 如此對應用程式的重新架構,可讓我們透過容器來部署這些個別服務。

Diagram that shows server or application replicated as containers for cloud deployment.

為何要使用容器?

假設您的資產追蹤解決方案包含三個主要應用程式:

  • 追蹤網站,其中包含地圖和與被追蹤資產的相關資訊。

  • 資料處理服務,其是用來收集和處理從所追蹤資產傳送的資訊。

  • MSSQL 資料庫,用於儲存從網站擷取的客戶資訊。

您知道為了滿足客戶需求,就必須擴增您的解決方案。

虛擬機器 (VM)

其中一個選項是針對裝載於多個區域的每個應用程式部署新的虛擬機器。 然後,將應用程式複製到新的 VM。 不過,這樣做可讓您負責管理所使用的每個 VM。

維護額外負荷會隨著規模調整而增加。 每個應用程式的 VM 作業系統 (OS) 版本和相依性都需要進行佈建和設定以進行匹配。 當您對影響作業系統和重大變更的應用程式套用升級時,會採取預防措施。 如果在升級過程中出現任何錯誤,則需要安裝復原並造成中斷,例如停機或延遲。

Diagram that shows replicated servers as VMs in the cloud and how the problem raises migration questions and problems.

上圖中的部署方式相當麻煩,容易發生錯誤,且無法輕鬆地調整單一服務。 例如,您無法輕鬆僅調整用於 Web 應用程式中的快取服務。 容器有助於解決這些類型的問題。

容器概念提供三個主要優點:

  1. 不變性 - 容器的不變本質,可供其以相同行為在不同的計算環境中可靠地部署及執行。 在 QA 環境中測試的容器映像,是部署到生產環境的相同容器映像。

  2. 較小的大小 - 容器與 VM 類似,但不含每部機器的核心。 相反地,它們會共用主機核心。 VM 會使用大型映像檔同時儲存您要執行的作業系統和應用程式。 對比之下,容器則不需要 OS,只需要應用程式。

  3. 輕量型 - 容器一律依賴主機安裝的作業系統來提供特定於核心的服務。 輕量型屬性可讓容器耗用較少的資源,因此可以在相同的計算環境中安裝多個容器。

  4. 啟動速度很快 - 容器會在幾秒鐘內啟動,與可能需要幾分鐘才能啟動的 VM 不同。

上述優點讓容器成為開發人員和 IT 作業的熱門選擇,也是許多人放棄使用 VM 的原因。

什麼是容器管理?

Diagram that shows replicated servers as multiple containers in the cloud.

儘管容器與 VM 在功能上類似,但其用途會有所不同。 容器具有不同的生命週期,以暫存性電腦的形式存在。 其狀態會歷經暫止、執行和終止的階段。 此生命週期可讓容器更具可處置性,並影響開發人員和 IT 作業人員對大型互連應用程式管理方式的看法。 容器管理牽涉到部署、升級、監視和移除容器。

例如,假設您發現中午有較多網站流量,因此您需要更多網站快取服務的執行個體來管理效能。 您計畫透過新增更多的快取服務容器來解決此問題。

現在是推出新版本快取服務的好時機。 如何更新所有容器? 如何移除所有較舊的容器?

這些類型的負載平衡問題需要一個系統來管理容器部署。

什麼是 Kubernetes?

Kubernetes 是可移植、可擴充的開放原始碼平台,用於自動執行容器化工作負載的部署、調整及管理。 Kubernetes 會抽象化複雜的容器管理,並為我們提供宣告式設定,以在不同的計算環境中協調容器。 此協調流程平台為我們提供了與平台即服務 (PaaS) 和基礎結構即服務 (IaaS) 供應項目相同的易用性和彈性。

Diagram that shows replicated servers as multiple containers in a Kubernetes cluster.

Kubernetes 可讓您將資料中心視為一部大型電腦。 我們不擔心部署容器的方式和位置,只關心在需要時部署和調整應用程式。

以下是一些要記住的其他 Kubernetes 相關層面:

  • Kubernetes 不是完整的 PaaS 供應項目。 它會在容器層級運作,並僅提供一組常用的 PaaS 功能。

  • Kubernetes 不是整合型。 它不是已安裝的單一應用程式。 部署、調整、負載平衡、記錄和監視等層面都是選擇性的。

  • Kubernetes 不會限制要執行的應用程式類型。 如果您的應用程式可在容器中執行,則其可在 Kubernetes 上執行。

  • 您的開發人員必須了解微服務架構等概念,以便充分利用容器解決方案。

  • Kubernetes 既不提供中介軟體、資料處理架構、資料庫、快取,也不提供叢集儲存體系統。 所有這些項目都是以容器的形式執行,或作為另一個服務供應項目的一部分執行。

  • Kubernetes 部署已設定為叢集。 叢集包含至少一部主要電腦或控制平面,以及一或多個背景工作電腦。 針對生產環境部署,慣用的設定是具有三到五個複寫控制平面電腦的高可用性部署。 這些背景工作電腦也稱為節點或代理程式節點。

憑藉 Kubernetes 帶來的所有優點,您必須負責尋找符合您需求的最佳解決方案來解決這些方面。 請記住,您必須負責維護 Kubernetes 叢集。 例如,您必須管理 OS 升級及 Kubernetes 安裝與升級。 您也必須管理主機電腦的硬體組態,例如網路功能、記憶體及儲存體。

注意

Kubernetes 有時會縮寫為 K8s。 8 表示單字 K[ubernete]s 中介於 K 與 s 之間的八個字元。

什麼是 Azure Kubernetes Service (AKS)?

Diagram that shows replicated servers as multiple containers in an AKS Kubernetes cluster.

AKS 可管理裝載的 Kubernetes 環境,以便在 Azure 中輕鬆地部署及管理容器化應用程式。 您的 AKS 環境啟用了自動化更新、自我修復和輕鬆調整等功能。 Azure 免費管理 Kubernetes 叢集的控制平面。 您可以管理叢集中的代理程式節點,而且只需針對節點執行所在 VM 付費。

您可以在 Azure 入口網站或 Azure CLI 中建立和管理叢集。 當您建立叢集時,可以使用 Resource Manager 範本來自動化叢集建立作業。 透過這些範本,您可以存取進階網路選項、Microsoft Entra Identity 和資源監視等功能。 然後,您可以設定觸發程序和事件,將多個案例的叢集部署自動化。

有了 AKS,您就能獲得開放原始碼 Kubernetes 的優點,而不會因為僅使用 Kubernetes 而增加複雜度或作業額外負荷。