Kubernetes 和 AKS 的總覽

已完成

當您探索容器化的原則來提高 Contoso 運算環境中的工作負載靈活性和密度時,您會發現您需要專注于容器協調流程,而不是個別容器的部署。 雖然後者提供簡單的功能,但它缺乏擴充性和復原能力。 在您的容器協調流程研究中,您很快就能將 Kubernetes 和 AKS 視為最適合您計畫的執行方式。

什麼是 Kubernetes?

Kubernetes 是可延伸的 Linux 型開放原始碼平台,用以協調容器化工作負載。 為確保恢復功能,典型的 Kubernetes 部署是由多個叢集伺服器所組成,它們稱為節點。 其中有些會形成控制平面,負責管理其餘的節點,以部署您的工作負載。 對於 Kubernetes,這些工作負載是由容器化應用程式的實例所組成,即 pod。

注意

控制平面的其中一個核心元件是 API 伺服器,其提供用來設定和管理 Kubernetes 叢集的介面。

注意

Pod 大致上相當於容器,但可包含多個在相同叢集節點上執行且緊密結合的容器。

一般情況下, Pod 是無狀態的,而且不提供任何固有的復原功能。 若要實作高可用性和備援,您可以使用部署來布建它們。 通常,部署是由多個 pod 複本所組成,共用相同的設定,並根據相同的映射執行容器。 Kubernetes 會自動管理部署內 pod 的生命週期,並以最佳方式重建跨可用叢集節點的任何失敗的週期。

部署也可簡化在 pod 中執行之容器映射的更新,而不會影響容器化工作負載的可用性。 藉由定義中斷預算,您可以控制在整個更新程式中必須保持上線的 pod 複本數目。

若要直接連線至 pod,您可以執行另一種 Kubernetes 資源類型,即服務。 例如,服務可讓您將來自網際網路的外部負載平衡連線,設定為在相同部署中裝載的一組 pod 上裝載的 web 服務。

除了以容器為基礎的隔離以外,Kubernetes 還提供將 Pod 與其他叢集資源 (例如部署) 隔離到命名空間的功能。 命名空間會形成邏輯界限,讓您能夠限制在叢集內建立、檢視或管理資源的存取權。

Kubernetes 的主要優點為何?

Kubernetes 為使用共用計算、網路和儲存體資源的多容器環境提供一致的管理模型。 Kubernetes 提供宣告式部署和管理模型,您可以在其中描述目標所需的設定,並其實作詳細資料保留給 Kubernetes 控制平面。

注意

透過宣告式管理模型,您可以使用 YAML 格式的資訊清單檔來控制 Kubernetes 元件的佈建、修改和刪除,例如 Pod、服務與部署。 您也可以使用封裝的 YAML 檔案集合,即 Helm 圖表。 Helm 是 Kubernetes 的套件管理員,可加速將更複雜的工作負載部署至 Kubernetes 叢集。

此外,Kubernetes 也提供下列優點:

  • 自我修復 Pod
  • 自動調整 pod
  • 虛擬化案例中 autocluster 節點的自動調整
  • 自動滾動式更新和復原 pod 部署
  • 自動探索新的 Pod 部署
  • 在執行相同工作負載的 Pod 間進行負載平衡

Kubernetes 可讓您將一組實體或虛擬伺服器視為統一的計算資源,同時利用容器化工作負載的靈活性和密度來優化伺服器。 雖然 Kubernetes 可簡化容器管理,但其管理牽涉到許多設定、管理和維護工作:

  • 部署、調整、負載平衡、記錄和監視等層面都是選擇性的。 您可以根據自己的特定需求,找出最佳設定並加以實作。
  • Kubernetes 本身不提供中介軟體、資料處理架構或資料庫。 不過,您可以選擇使用容器來實作任何對應的功能。
  • 您需負責維護自己的 Kubernetes 環境。 例如,您必須管理作業系統升級和 Kubernetes 升級。 您也可以管理叢集節點可用的硬體資源,例如網路、記憶體和儲存體。

注意

Azure Kubernetes Service (AKS) 之類的受控 Kubernetes 供應項目可將這些挑戰降到最低,甚至完全消除。

知識檢查

1.

當您在評估將 Kubernetes 用於容器化工作負載時,想要部署到 Contoso 的 Azure Stack HCI 環境時,您會發現您需要限制使用相同 Kubernetes 叢集的使用者建立、查看或使用容器化資源。 您應該使用哪一種 Kubernetes 功能來限制使用者?