什麼是 Azure Kubernetes Service?

已完成

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

什麼是容器?

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

圖表:顯示複寫為雲端部署容器的伺服器或應用程式。

為何要使用容器?

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

  • 包含所追蹤資產之地圖和相關信息的追蹤網站

  • 處理和收集來自已追蹤資產的資訊的數據處理服務

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

您意識到要符合客戶需求,您必須相應放大您的解決方案。

虛擬機器(VM)

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

維護額外負荷會隨著規模調整而增加。 您必須為每個應用程式佈建和設定 VM作業系統版本及其相依性,使其相符。 當您對影響作業系統和重大變更的應用程式套用升級時,會採取預防措施。 如果在升級期間出現任何錯誤,您需要復原安裝,這會導致中斷,例如停機時間或延遲。

圖表:顯示複寫伺服器作為雲端中的 VM,以及此問題如何引發移轉疑慮和問題。

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

容器概念提供我們四大優點:

  1. 不變性:容器的不變本質可讓它以從一個計算環境到另一個計算環境相同的行為可靠地部署和執行。 在 QA 環境中測試的容器映像,是部署到生產環境的相同容器映像。

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

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

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

這些優點讓容器成為開發人員和IT作業的熱門選擇,也是許多容器從VM切換的原因。

什麼是容器管理?

圖表:顯示複寫伺服器作為雲端中多個容器。

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

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

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

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

什麼是 Kubernetes?

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

圖表:顯示複寫伺服器作為 Kubernetes 叢集中的多個容器。

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)?

圖表:顯示複寫伺服器作為 AKS Kubernetes 叢集中的多個容器。

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

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

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