瞭解 IBM Cloud Kubernetes Service
進一步了解 IBM Cloud® Kubernetes Service、其功能,以及可供您根據需求自訂叢集的各項選項。
IBM Cloud Kubernetes Service 這是一項託管服務,可讓您建立專屬的 Kubernetes 運算主機叢集,用以在 IBM Cloud 上部署及管理容器化應用程式。 作為經認證的 Kubernetes 服務供應商,IBM Cloud Kubernetes Service 旨在為您的應用程式提供智慧排程、自動修復、水平擴展、服務發現與負載平衡、自動化部署與回滾,以及機密資訊與配置管理。 結合使用直觀的使用者體驗、內建安全和隔離以及進階工具來保護、管理和監視叢集工作負載,可以在公用雲端中快速交付高度可用且安全的容器化應用程式。
檢閱 IBM Cloud Kubernetes Service 的常見問題集及其使用的主要技術。
何謂 Kubernetes?
Kubernetes 是一個開放程式碼平台,用於管理跨多個主機的容器化工作負載和服務,並提供用於部署、自動化、監視和調整容器化應用程式的管理工具,需要的人為介入極少,甚至不需要人為介入。
這個開源專案 Kubernetes,將容器化基礎架構的運作與生產環境工作負載、開源貢獻,以及 Docker 的容器管理工具結合在一起。 Kubernetes 基礎架構提供了一個用於管理容器的隔離且安全的應用程式平台,該平台具備可移植性、可擴展性,並能在發生故障轉移時自動修復。 如需相關資訊,請參閱 何謂 Kubernetes?。
瞭解 Kubernetes 主要概念的更多相關資訊,如下圖所示。
- 帳戶
-
您的帳戶是指 IBM Cloud 帳戶。
- 叢集、工作者節點儲存區及工作者節點
-
一個 Kubernetes 叢集由一個主節點和一個或多個稱為工作節點的運算主機所組成。 工作者節點會組織成相同規格的工作者節點儲存區,或 CPU、記憶體、作業系統、連接磁碟及其他內容的設定檔。 工作節點對應於
NodeKubernetes 資源,並由主控 Kubernetes 節點管理,該主控節點集中控制並監控叢集內 Kubernetes 的所有資源。 因此,在部署容器化應用程式的資源時,Kubernetes 主節點會考慮部署需求和叢集裡的可用容量,然後決定將這些資源部署在哪個工作者節點上。 Kubernetes 資源包括服務、部署及 Pod。 - 名稱空間
-
Kubernetes 名稱空間是一種方法,可將叢集資源劃分為您可以部署應用程式並限制存取的個別區域,例如您想要與多個團隊共用叢集。 例如,為您配置的系統資源會保留在個別名稱空間中,例如
kube-system或ibm-system。 如果您在建立 Kubernetes 資源時未指定名稱空間,則會在default名稱空間中自動建立資源。 - 服務
-
服務是一種 Kubernetes 資源,可將一組 Pod 分組在一起,並提供這些 Pod 的網路連線功能,而不需要公開每一個 Pod 的實際專用 IP 位址。 您可以使用服務,將您的應用程式設為可在叢集內或公用網際網路中使用。
- 部署
-
部署是一種 Kubernetes 資源,您可在其中指定執行應用程式所需的其他資源或功能的相關資訊(例如服務、持續性儲存空間或註釋)。 將部署記載在配置 YAML 檔案中,然後再將其套用至叢集。 Kubernetes 主節點會配置資源,並將容器部署至具有可用容量之工作者節點上的 Pod。
-
定義應用程式的更新策略,包括您要在漸進式更新期間新增的 Pod 數目,以及每次更新時可能無法使用的 Pod 數目。 當您執行漸進式更新時,部署會檢查更新是否正常運作,並且在偵測到失敗時停止推出。
-
部署只是一種工作負載控制器類型,可用來管理 Pod。 如需在您的選項中進行選擇的協助,請參閱 我可以為我的應用程式建立何種類型的 Kubernetes 物件?。 如需部署的相關資訊,請參閱 Kubernetes 文件。
- Pod
-
每個部署到叢集中的容器化應用程式,皆由一個稱為「Pod」的 Kubernetes 資源負責部署、執行及管理。 Pod 代表 Kubernetes 叢集裡的小型可部署單元,並且用來將必須視為單一單元的容器分組在一起。 通常,每一個容器都部署在其自己的 Pod 中。 不過,應用程式可能會要求將一個容器及其他協助容器部署至某個 Pod,以便使用相同的專用 IP 位址來為那些容器定址。
- 應用程式
-
應用程式可能是指完整應用程式或應用程式的元件。 您可以在個別 Pod 或個別工作者節點中部署應用程式的元件。 如需相關資訊,請參閱 規劃應用程式部署 及 開發 Kubernetes原生應用程式。
欲深入瞭解 Kubernetes,請參閱 文件 Kubernetes。
何謂儲存器?
容器提供了一種標準方法,用於將應用程式碼、配置和相依關係包裝成單一單位,該單位可作為資源隔離的處理程序在運算伺服器上執行。 若要在 IBM Cloud 上執行您的應用程式,您必須先將應用程式容器化,方法是建立一個容器映像檔,並將其儲存至容器註冊表中。
查看以下術語以更熟悉這些概念。
- 容器
- 容器是一種已將所有依賴項一併打包的應用程式,使其能夠在不同環境間遷移,並在無需任何變更的情況下執行。 與虛擬機器不同,容器並不會將裝置、其作業系統以及底層硬體進行虛擬化。 只有應用程式碼、運行環境、系統工具、程式庫及設定才會包裝在容器中。 容器會以隔離的處理程序形式在運算主機上執行,並共用主機作業系統及其硬體資源。 此方式讓容器比起虛擬機器顯得更輕量、可攜性更高且更有效率。
- 影像
- 容器映像是一個包,其中包含運行容器的檔案、配置設定和庫。 映像是從稱為 Dockerfile 的文字檔案建構的。 Dockerfile 定義如何建置映像以及要包含在其中的工件。 容器中包含的工件由應用程式程式碼、組態設定和任何相依性組成。
- 登錄
- 映像檔登錄是儲存、擷取及共用容器映像檔的位置。 註冊表可以對任何人公開,也可以僅限特定使用者群組存取。 在企業應用程式方面,請使用 IBM Cloud 這樣的私有註冊表,以防止您的映像檔被未經授權的使用者使用。
IBM Cloud Kubernetes Service 提供哪些運算主機基礎架構?
使用 IBM Cloud® Kubernetes Service,您可以使用下列提供者中的基礎架構來建立叢集。 一個叢集裡的所有工作者節點都必須來自相同提供者。
| 元件 | 說明 |
|---|---|
| 概觀 | 在您自己的 Virtual Private Cloud (VPC) 中的虛擬伺服器上建立叢集。 |
| 支援的容器平台 | Red Hat OpenShift 或 Kubernetes |
| 運算和工作者節點資源 | 使用共用基礎架構或專用主機,將工作者節點建立為虛擬機器。 與標準叢集不同,共用硬體上的 VPC 叢集工作者節點不會出現在基礎架構入口網站或個別基礎架構帳單中。 而是透過 IBM Cloud Kubernetes Service來管理工作者節點的所有維護及計費活動。 工作者節點實例會連接至位於基礎架構帳戶中的特定 VPC 實例,例如 VPC 子網路或儲存空間磁區。 對於專用主機,專用主機價格涵蓋vCPU,記憶,以及任何 實例儲存 可供放置在主機上的任何工作人員使用。 請注意,依預設,所有 Intel ® x86-64 伺服器都已啟用 Hyper-Threading。 如需相關資訊,請參閱 Intel Hyper-Threading Technology。 |
| 安全 | 共用硬體上的叢集在公用雲端的隔離環境中執行。 專用主機上的叢集不會在共用環境中執行,而是只會在主機上呈現您的叢集。 網路存取控制清單可保護為工作者節點提供浮動 IP 的子網路。 |
| 高可用性 | 主節點包括三個抄本,以取得高可用性。 此外,如果在多區域都會中建立叢集,則主節點抄本會分散在各區域中,而且您也可以將工作者節點儲存區分散在各區域中。 |
| 保留項目 | VPC 無法使用預約。 |
| 叢集管理 | 對於 VPC 叢集,更新或復原操作取決於工作節點類型。 對於 VPC 裸機工作人員,您可以使用 worker reload CLI。 對於 VPC 虛擬伺服器實例工作節點,請使用 worker replace --update CLI 或 API 操作,以替換已過時或處於異常狀態的工作節點。 |
| 叢集網路 | 與標準基礎架構不同,VPC 叢集的工作者節點會連接至 VPC 子網路並獲指派專用 IP 位址。 工作者節點不會連接至公用網路,而是透過公用閘道、浮動 IP 或 VPN 閘道存取公用網路。 如需相關資訊,請參閱 IBM Cloud Kubernetes Service中的 VPC 網路概觀。 |
| 應用程式和容器平台 | 您可以選擇建立社群版 Kubernetes 或 Red Hat OpenShift 叢集,用以管理您的容器化應用程式。 您的應用程式建置處理程序不會因為基礎架構提供者而有所不同,但您會如何公開應用程式。 |
| 應用程式網路 | 部署到工作者節點的所有 Pod 都會指派有 172.30.0.0/16 範圍內的專用 IP 位址,並且在專用 VPC 子網路的工作者節點專用 IP 位址上的工作者節點之間遞送這些 Pod。 若要在公用網路上公開應用程式,您可以建立 Kubernetes LoadBalancer 服務,為工作者節點佈建 VPC 負載平衡器和公用主機名稱位址。 如需相關資訊,請參閱使用 VPC 負載平衡器公開應用程式。 |
| 儲存空間 | 可以從非持續性和持續性儲存空間解決方案(例如,檔案、區塊、物件和軟體定義的儲存空間)中進行選擇。 如需相關資訊,請參閱規劃高度可用的持續性儲存空間。 |
| 使用者存取權 | 您可以使用 IBM Cloud IAM 存取原則 來授權使用者建立基礎架構、管理叢集及存取叢集資源。 叢集可以位於與 VPC 不同的資源群組中。 |
| 整合 | VPC 支援由支援的 IBM Cloud 服務、附加程式和協力廠商整合構成的選取清單。 如需取得清單,請參閱支援的 IBM Cloud 和協力廠商整合。 |
| 位置和版本 | VPC 叢集在全球的 多區域位置 中提供。 |
| 服務介面 | 下一個版本 (v2) 的 IBM Cloud Kubernetes Service API 支援 VPC 叢集,可以透過可用於標準叢集的相同 CLI 和主控台來管理 VPC 叢集。 |
| 服務相符性 | 請參閱 服務符合哪些標準? 中的 VPC 小節。 |
| 服務限制 | 請參閱服務限制。 如需 IBM Cloud Kubernetes Service中的 VPC 特定限制,請參閱 VPC 叢集限制。 如需一般 VPC 基礎架構提供者限制,請參閱 限制。 |
| 元件 | 說明 |
|---|---|
| 概觀 | 在您自己的硬體 IBM Cloud Classic 或 VPC 上建立叢集,或在另一個雲端提供者 (例如 AWS 或 Azure) 中的虛擬伺服器上建立叢集。 |
| 支援的容器平台 | Red Hat OpenShift |
| 運算和工作者節點資源 | 工作者節點可以是使用共用基礎架構或專用主機,甚至裸機伺服器的虛擬機器。 不論工作者節點是 IBM Cloud、您自己的內部部署硬體或另一個雲端提供者,您都可以透過主機基礎架構提供者來管理工作者節點的維護及計費活動。 您也可以透過 IBM Cloud來管理計費。 如需更多有關定價的資訊,請參閱《 使用 IBM Cloud Satellite 時會被收取哪些費用? 》。 |
| 安全 | 請參閱 安全及相符性。 |
| 高可用性 | 請參閱 關於高可用性及回復。 |
| 保留項目 | Satellite無法使用預約。 |
| 叢集管理 | 請參閱 更新指派為工作者節點的主機。 |
| 叢集網路 | 如果您將 IBM Cloud Classic 或 VPC 主機連接至您的位置,請參閱那些說明。 |
| 應用程式和容器平台 | 您可以建立 Red Hat OpenShift 叢集 以管理容器化應用程式。 您的應用程式建置處理程序不會因為基礎架構提供者而有所不同,但您會如何公開應用程式。 如需相關資訊,請參閱 選擇應用程式公開服務。 |
| 應用程式網路 | 依預設,部署到工作者節點的所有 Pod 都會指派有 172.30.0.0/16 範圍內的專用 IP 位址。 您可以指定為 Pod 提供專用 IP 位址的自訂子網路 CIDR,以避免與您用來連接至位置的網路發生子網路衝突。 若要公開應用程式,請參閱 在 Satellite 叢集裡公開應用程式。 |
| 儲存空間 | 自帶儲存體驅動程式,或部署其中一個支援的儲存體範本。 如需相關資訊,請參閱 瞭解 Satellite 儲存體。 |
| 使用者存取權 | 您可以使用 IBM Cloud IAM 存取原則來授權使用者建立 IBM Cloud 基礎架構、管理叢集及存取叢集資源。 如需更多資訊,請參閱《 存取管理概覽 》。 您也可以在基礎架構提供者所提供的原則中,進一步控制對主機基礎架構的存取權。 |
| 整合 | 如需叢集整合,請參閱 支援的 IBM Cloud 及協力廠商整合。 如需支援的 Satellite 服務整合,請參閱 支援的 Satellite IBM Cloud 服務。 |
| 位置和版本 | 叢集是從其中一個 支援的 IBM Cloud 位置 進行管理。 不過,您可以將工作者節點部署至您自己的位置、IBM Cloud 資料中心或另一個雲端提供者。 如需相關資訊,請參閱 瞭解位置和主機。 |
| 服務介面 | 廣域 API [IBM Cloud Kubernetes Service、IBM Cloud Kubernetes ServiceCLI 及 Satellite CLI 支援 Satellite。 您也可以從 主控台 管理叢集。 |
| 服務相符性 | 若為叢集,請參閱 服務符合哪些標準?。 如需 Satellite,請參閱 安全與相符性。 |
| 服務限制 | 請參閱 限制、預設值及使用需求。 |
| 元件 | 說明 |
|---|---|
| 概觀 | 在 IBM Cloud 基礎架構中的標準運算、網路及儲存體環境中建立叢集。 |
| 支援的容器平台 | Red Hat OpenShift 或 Kubernetes |
| 運算和工作者節點資源 | 您的工作節點可選用虛擬、裸機及軟體定義儲存機器。 工作者節點實例位於 IBM Cloud 基礎架構帳戶中,但可以透過 IBM Cloud Kubernetes Service 對這些實例進行管理。 工作者節點實例由您擁有。 |
| 安全 | 內建的安全功能,可協助您保護叢集基礎架構、隔離資源,並確保符合安全規範。 如需相關資訊,請參閱 標準網路基礎架構文件。 |
| 高可用性 | 對於標準叢集和 VPC 叢集,主節點都包含三個抄本,以實現高可用性。 此外,如果在多區域都會中建立叢集,則主節點抄本會分散在各區域中,而且您也可以將工作者節點儲存區分散在各區域中。 如需相關資訊,請參閱 IBM Cloud Kubernetes Service 的高可用性。 |
| 保留項目 | 建立保留,其合約期限為 1 或 3 年,適用於標準工作者節點,以在合約有效期限內減少的成本鎖定。 與一般工作者節點成本相比,一般節省範圍介於 30-50% 之間。 |
| 叢集管理 | 經典叢集支援完整的 v1 API 操作集,例如調整工作節點叢集的大小、重新載入工作節點,以及在主要版本、次要版本和修補版本之間更新主節點和工作節點。 刪除叢集時,可以選擇移除任何連接的子網路或儲存空間實例。 |
| 叢集網路 | 工作者節點在專用 VLAN 上佈建,專用 VLAN 提供專用 IP 位址以在專用 IBM Cloud 基礎架構網路上進行通訊。 要在公用網路上進行通訊,還可以在公用 VLAN 上佈建工作者節點。 與叢集主節點的通訊可透過公有雲或私有雲服務端點進行。 如需相關資訊,請參閱 瞭解 VPC 叢集網路基本觀念 或 瞭解標準叢集網路基本觀念。 |
| 應用程式和容器平台 | 您可以選擇建立 社群版 Kubernetes 或 Red Hat OpenShift 叢集, 用以管理您的容器化應用程式。 您的應用程式建置處理程序不會因為基礎架構提供者而有所不同,但您會如何公開應用程式。 如需相關資訊,請參閱 選擇應用程式公開服務。 |
| 應用程式網路 | 部署到工作者節點的所有 Pod 都會指派有 172.30.0.0/16 範圍內的專用 IP 位址,並且在專用 VLAN 的工作者節點專用 IP 位址上的工作者節點之間遞送這些 Pod。 若要在公用網路上公開應用程式,叢集必須在公用 VLAN 上具有工作者節點。 然後,可以建立 NodePort、LoadBalancer (NLB) 或 Ingress (ALB) 服務。 如需相關資訊,請參閱規劃應用程式的叢集內網路和外部網路。 |
| 儲存空間 | 可以從非持續性和持續性儲存空間解決方案(例如,檔案、區塊、物件和軟體定義的儲存空間)中進行選擇。 如需相關資訊,請參閱規劃高度可用的持續性儲存空間。 |
| 使用者存取權 | 若要建立標準基礎架構叢集,必須為每個地區和資源群組設定基礎架構認證。 若要讓使用者管理叢集,請使用 IBM Cloud IAM 平台存取角色。 若要授與使用者對叢集資源的存取權,請使用對應於 Kubernetes RBAC 角色的 IBM Cloud IAM 服務存取角色。 |
| 整合 | 可以使用各種 IBM Cloud 服務、附加程式和協力廠商整合來延伸叢集和應用程式功能。 如需取得清單,請參閱支援的 IBM Cloud 和協力廠商整合。 |
| 位置和版本 | 經典集群 在全球範圍內 可用。 |
| 服務介面 | Kubernetes Service v1 API、CLI 及 主控台 中完全支援標準叢集。 |
| 服務相符性 | 請參閱 服務符合哪些標準? 中的標準小節。 |
| 服務限制 | 請參閱服務限制。 特定特性的限制是由小節所記載。 |
使用服務有哪些好處?
- 可選擇容器平台提供者
-
- 使用 Red Hat OpenShift 或社群版 Kubernetes 作為容器平台調度器。
- 選擇適合貴公司的開發者體驗,或在 Red Hat OpenShift 與社群版 Kubernetes 叢集上執行工作負載。
- 從 IBM Cloud 控制台到 Kubernetes 儀表板或 Red Hat OpenShift 網頁控制台的內建整合功能。
- 透過 IBM Cloud,即可對您所有的 Red Hat OpenShift 或社群版 Kubernetes 叢集進行單一視圖檢視與管理。
- 具有運算、網路及儲存空間基礎架構隔離的單一承租戶 Kubernetes 叢集
-
- 建立符合組織需求的專屬自訂基礎架構。
- 從各家基礎設施供應商中進行選擇。
- 使用 IBM Cloud 基礎架構所提供的資源,來佈建專用且受保護的 Kubernetes 主節點、工作者節點、虛擬網路及儲存空間。
- 完全受管理的 Kubernetes 主節點,它持續由 IBM 監視及更新,以保持叢集可供使用。
- 可選擇將工作節點配置為裸機伺服器,以處理資料、GPU 和 AI 等運算密集型工作負載。
- 儲存持續性資料、在 Kubernetes Pod 之間共用資料,以及在需要時使用整合且安全的磁區服務來還原資料。
- 獲得所有原生 Kubernetes API 的完整支援的好處。
- 增加高可用性的多區域叢集
-
- 透過工作者節點儲存區輕鬆管理相同規格(CPU、記憶體、虛擬或實體)的工作者節點。
- 藉由在所選多區域中平均分散節點並對您的應用程式使用反親緣關係 Pod 部署,以防止區域故障。
- 您可以透過使用多區域叢集,而非在另一個叢集中維護重複的資源,來降低成本。
- 受益於使用多區域負載平衡器 (MZLB) 跨應用程式進行自動負載平衡,而此負載平衡器是在叢集的每一個區域中自動為您設定的。
- 高可用性主節點
-
- 例如在主節點更新期間減少叢集運作中斷時間,而高可用性主節點會在您建立叢集時自動佈建。
- 將您的主節點分散配置於多區域叢集的各個區域中,以保護叢集免受區域故障的影響。
- 符合 Vulnerability Advisor 的映像檔安全性
-
- 在安全的 Docker 私有映像註冊庫中建立您自己的儲存庫,該註冊庫用於儲存映像,並供組織內所有使用者共享。
- 受益於自動掃描專用 IBM Cloud 登錄中的映像檔。
- 檢閱映像檔中所用作業系統特有的建議,來修正潛在漏洞。
- 叢集性能的持續監視
-
- 使用叢集儀表板,快速查看及管理叢集、工作者節點及容器部署的性能。
- 透過 IBM Cloud® Monitoring 查閱詳細的使用量指標,並快速擴展您的叢集以滿足工作負載需求。
- 使用 IBM Cloud Logs 來檢閱記載資訊,以查看詳細的叢集活動。
- 安全地將應用程式公開給大眾使用
-
- 選擇公用 IP 位址、IBM 所提供的路徑,或您自己的自訂網域,以從網際網路存取叢集裡的服務。
- IBM Cloud 服務整合
-
- 透過整合 IBM Cloud 服務(例如 Watson API、Blockchain、資料服務或物聯網),為您的應用程式增添更多功能。
Red Hat OpenShift 與 Kubernetes 叢集之間的比較
Red Hat OpenShift on IBM Cloud 與 IBM Cloud Kubernetes Service 這兩組叢集,皆是專為企業級工作負載量身打造、可直接投入生產環境的容器平台。 下表比較並對照了若干常見特徵,可協助您選擇最適合自身使用情境的容器平台。
| 特徵 | Kubernetes 叢集 | Red Hat OpenShift 叢集 |
|---|---|---|
| 透過 IBM Cloud Kubernetes Service 自動化工具(API、CLI 和主控台)提供完整的叢集管理體驗 | 是 | 是 |
| 在單一區域和多區域中實現全球可用性 | 是 | 是 |
| 跨混合式雲端提供者實現一致的容器編排 | 是 | 是 |
| 使用 IBM Cloud 的各項服務,例如人工智慧(AI) | 是 | 是 |
| 軟體定義的儲存空間 Portworx 解決方案,可用於多區域資料使用案例 | 是 | 是 |
| 在 IBM Virtual Private Cloud (VPC) 中建立叢集 | 是 | 是 |
| 最新的 Kubernetes 發行版 | 是 | |
| 針對同步至叢集 RBAC 的服務存取角色,將 IBM Cloud IAM 存取原則設為存取群組 | 是 | |
| 僅在私有網路上的經典基礎架構叢集 | 是 | |
| GPU 裸機工作者節點 | 是 | 是 |
| 整合的 IBM Cloud Paks 和中介軟體 | 是 | |
| 內建的容器映像流、建置流程及工具( 了解為何在 OpenShift 上管理容器映像與在 Kubernetes 上有所不同 ) | 是 | |
| CI/CD 與 Jenkins 整合 | 是 | |
| 依預設設定了更嚴格的應用程式安全環境定義 | 是 | |
| 簡化了 Kubernetes 開發人員體驗,具有適合初學者的應用程式主控台 | 是 | |
| 支援的作業系統 | Kubernetes版本訊息 | Red Hat OpenShift版本資訊 |
| 偏好外部資料流量網路連線功能 | Ingress | 路由器 |
| 使用 Hyper Protect Crypto Services 加密的安全路徑 | 是 |
相關資源
檢閱如何瞭解 Kubernetes 概念和術語的相關資訊。
- 完成本 課程,了解 Kubernetes 與 IBM Cloud Kubernetes Service 如何協同運作。