開始瞭解 Kubernetes


GKE 以開放原始碼容器自動化調度管理平台 Kubernetes 為基礎,本網站上的許多說明文件都假設您已熟悉 Kubernetes 的基本概念和術語。如果沒有,本頁面會快速介紹 Kubernetes 基礎知識,並提供建議閱讀的內容連結,協助您入門。

基本概念

以下是我們在整個 GKE 說明文件中使用的幾個重要概念。這份清單並未列出所有 Kubernetes 概念。如要進一步瞭解,請參閱 Kubernetes 說明文件和建議閱讀內容中的主題。

節點和叢集

所有 Kubernetes 工作負載都會在節點上執行。在 GKE 中,節點是 Compute Engine 虛擬機器 (VM)。在其他 Kubernetes 平台上,節點可以是實體或虛擬機器。每個節點都由 Kubernetes 控制層管理,並具備執行 Pod 的所有必要元件。叢集是一組節點,可做為單一實體一起處理,您可以在其中部署容器化應用程式。

詳情請參閱 Kubernetes 說明文件:

命名空間

Kubernetes 命名空間提供機制,可進一步分組及選取叢集內的 Pod 和服務等資源。舉例來說,如果有多個應用程式團隊在單一叢集上執行工作負載,您就可以使用這項機制。

詳情請參閱 Kubernetes 說明文件:

Pod

在 Kubernetes 中,容器化應用程式會在 Pod 內執行。Pod 是 Kubernetes 中最小的可部署運算單元,Pod 具有一或多個「容器」。如果 Pod 執行多個容器 (例如應用程式伺服器和Proxy 伺服器),系統會將這些容器視為單個實體進行管理,這些容器也共用 Pod 的資源。

詳情請參閱 Kubernetes 說明文件:

控制器

Kubernetes 控制器會根據您指定的所需狀態 (例如「我想在這個叢集上執行三個這個 Pod,每個 Pod 都有這個容器」),追蹤及管理叢集和工作負載的狀態。不同的控制器會追蹤不同的 Kubernetes 資源類型,包括:

  • 部署作業部署作業是 Kubernetes 物件,代表一或多個相同的 Pod,稱為「副本」。Deployment 會執行多個 Pod 副本,這些副本會分散在叢集的節點中。Deployment 會自動取代失敗或無法回應的 Pod。
  • StatefulSetStatefulSet 類似於 Deployment,但會為每個 Pod 維護持續性的專屬 ID。對於具有永續性狀態的應用程式 (有狀態應用程式),StatefulSets 相當實用。
  • DaemonSets:Kubernetes DaemonSet 可讓您將預設 Pod 新增至部分或所有節點。這些通常是工作負載的「輔助」服務,例如記錄收集 Daemon 或監控 Daemon。
  • ReplicaSetsReplicaSet 是一組相同的 Pod。ReplicaSet 通常是 Deployment 的一部分。

詳情請參閱 Kubernetes 說明文件:

Kubernetes 服務

根據預設,您無法控制 Pod 執行的叢集節點,因此 Pod 沒有穩定的 IP 位址。如要取得在 Kubernetes 中執行的應用程式 IP 位址,您必須在 Pod 上方定義稱為 Kubernetes 服務的網路抽象層。Kubernetes Service 會為一組 Pod 提供穩定的網路端點。Service 類型有許多種,包括 LoadBalancer Service,這類 Service 會公開外部 IP 位址,方便您從叢集外部連線至應用程式。

Kubernetes 也有內建的 DNS 系統,可解析內部地址,並將 DNS 名稱 (例如 helloserver.default.cluster.local) 指派給服務。這樣一來,叢集內的 Pod 就能使用穩定位址存取叢集中的其他 Pod。您無法在叢集外部使用這個 DNS 名稱,例如從 Cloud Shell。

詳情請參閱 Kubernetes 說明文件:

儲存空間

如果應用程式需要儲存 Pod 生命週期以外的資料 (有狀態應用程式),可以使用 Kubernetes PersistentVolume 物件佈建這類儲存空間。在 GKE 中,PersistentVolume 儲存空間是由 Compute Engine 磁碟支援。您也可以選擇使用暫時性儲存空間,這類儲存空間會在對應的 Pod 終止時遭到毀損。

詳情請參閱 Kubernetes 說明文件:

Kubernetes 控制層

Kubernetes「控制層」是一組系統元件,可管理叢集的整體狀態,包括「Kubernetes API 伺服器」,讓您使用 kubectl 和其他工具與叢集和應用程式互動;「排程器」,可在可用節點上排定 Pod;以及「控制器」,可追蹤及管理叢集狀態。在 GKE 中,控制層是由 Google Cloud提供及管理。

詳情請參閱 Kubernetes 說明文件:

依不同的角色授予存取權控制 (RBAC)

Kubernetes 內建角色型存取權控管 (RBAC) 機制,可讓您建立授權政策,控管叢集及其資源的存取權。使用 GKE 時,您通常會結合 Kubernetes RBAC 和 Google Cloud的 Identity and Access Management,確保應用程式安全無虞。

詳情請參閱 Kubernetes 說明文件:

本節提供建議資源的連結,方便您進一步瞭解 Kubernetes。特別是 Kubernetes 官方網站 Kubernetes.io,其中有許多關於 Kubernetes 的最新可靠資料。

指南與教學課程

參考說明文件

  • Kubernetes 詞彙表: Kubernetes 術語的完整標準化清單。如果不確定 Kubernetes 術語的含義,請參閱以下資源!

影片

漫畫

  • Kubernetes 漫畫:瞭解 Kubernetes 的發展歷程,以及如何使用這項服務持續整合及持續推送軟體更新,並獲得智慧女神 (和容器化應用程式) 的協助。