VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1...

16
VMware 雲端原生儲存區入 Update 3 修改日期:2020 3 25 VMware vSphere 6.7 vCenter Server 6.7 VMware ESXi 6.7

Transcript of VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1...

Page 1: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

VMware 雲端原生儲存區入門

Update 3修改日期:2020 年 3 月 25 日VMware vSphere 6.7vCenter Server 6.7VMware ESXi 6.7

Page 2: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

您可以在 VMware 網站上找到最新的技術文件,網址如下:

https://docs.vmware.com/tw/

如果您對於本文件有任何意見,歡迎寄至:

[email protected]

VMware, Inc.3401 Hillview Ave.Palo Alto, CA 94304www.vmware.com

Copyright © 2019-2020 VMware, Inc. 保留所有權利。 版權與商標資訊。

VMware 雲端原生儲存區入門

VMware, Inc. 2

Page 3: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

目錄

關於 VMware 雲端原生儲存區入門 4

更新的資訊 5

1 瞭解雲端原生儲存區 6雲端原生儲存區 概念和術語 6

雲端原生儲存區使用者 8

雲端原生儲存區 元件 8

雲端原生儲存區 角色和權限 10

2 vSphere 雲端原生儲存區管理員 12雲端原生儲存區 的需求 12

建立儲存區原則 13

設定 Kubernetes 叢集虛擬機器 14

跨 Kubernetes 叢集監控 Container 磁碟區 15

VMware, Inc. 3

Page 4: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

關於 VMware 雲端原生儲存區入門

《VMware 雲端原生儲存區入門》說明文件提供了 VMware® 雲端原生儲存區的相關資訊,這是一項

vSphere 和 Kubernetes 解決方案,可針對 vSphere 環境中可設定狀態的應用程式提供全面的資料管理功

能。

這項資訊包括雲端原生儲存區概念和元件的簡要概述。此外也說明 vSphere 管理員可執行哪些工作為

Kubernetes 叢集提供持續性儲存資源,並使用 vSphere Client 監控這些資源。

預定對象

這項資訊適用於對 Kubernetes 有基本瞭解並熟悉 Container 部署概念的 vSphere 管理員。

想要在 vSphere 上執行 Kubernetes 叢集和容器化應用程式的 Kubernetes 使用者,可以參閱 GitHub 上的

Kubernetes vSphere Cloud Provider 說明文件。

VMware 技術出版物詞彙表

VMware 技術出版物提供您可能不熟悉的專有詞彙表。如需 VMware 技術說明文件中所用專有詞彙的定

義,請前往 http://www.vmware.com/support/pubs。

VMware, Inc. 4

Page 5: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

更新的資訊

此《VMware 雲端原生儲存區入門》會在產品的每個版本發行時隨之更新,或在必要時進行更新。

下表提供《VMware 雲端原生儲存區入門》的更新歷程記錄。

修訂版本 描述

2020 年 3 月 25 日 從《VMware 雲端原生儲存區入門》說明文件中移除了與 Kubernetes 所使用的工作有關的小節。

想要在 vSphere 上執行 Kubernetes 叢集和容器化應用程式的 Kubernetes 使用者,可以參閱 GitHub 上的

Kubernetes vSphere Cloud Provider 說明文件。此文件也包含 vSphere CSI 驅動程式安裝、部署和範例

YAML 的相關資訊。

2020 年 3 月 04 日 次要編輯。

2019 年 10 月 22 日 已從此文件中移除與安裝 vSphere CSI 外掛程式和部署 Kubernetes 叢集有關的小節。如需相關資訊,請參閱

Kubernetes vSphere Cloud Provider 說明文件。

2019 年 10 月 01 日 已更正 雲端原生儲存區 元件,以表明 vSphere Container Storage Interface 支援單一 vCenter Server。

2019 年 8 月 20 日 初始版本。

VMware, Inc. 5

Page 6: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

瞭解雲端原生儲存區 1雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用 雲端原生儲存區 時,您可

以建立能夠承受重新啟動和中斷的容器化可設定狀態應用程式。在使用標準磁碟區、持續性磁碟區和動態

佈建之類原始物件時,可設定狀態 Container 會利用 vSphere 公開的儲存區。

使用 雲端原生儲存區,您可以獨立於虛擬機器和容器生命週期之外建立持續性容器磁碟區。vSphere 儲存

區會支援磁碟區,然後您可以直接在磁碟區上設定儲存區原則。建立磁碟區之後,您可以在 vSphere Client 中檢閱磁碟區和其支援虛擬磁碟,並監控其儲存區原則符合性。

本章節討論下列主題:

n 雲端原生儲存區 概念和術語

n 雲端原生儲存區使用者

n 雲端原生儲存區 元件

n 雲端原生儲存區 角色和權限

雲端原生儲存區 概念和術語

請先熟悉 vSphere 雲端原生儲存區 環境的數個基本概念。

Kubernetes 叢集 Kubernetes 控制平面和 Worker 服務執行所在的虛擬機器叢集。您可以在

Kubernetes 叢集上方部署您的容器化應用程式。應用程式可以是可設定狀

態,也可以是無狀態。

網繭 網繭為共用這類資源做為儲存區和網路的一或多個 Container 的群組。網繭

內的 Container 會啟動、停止,以及以群組形式複寫。

Container Orchestrator 開放原始碼平台 (例如 Kubernetes),用於在主機的叢集間容器化應用程式的

部署、擴充和管理。此類平台提供以 Container 為中心的基礎結構。

可設定狀態應用程式 由於容器化應用程式會從無狀態發展為可設定狀態,因此它們需要持續性儲

存區。可設定狀態應用程式與不會在工作階段之間儲存資料的無狀態應用程

式不同,前者會將資料儲存至持續性儲存區。保留的資料稱為應用程式的狀

態。您之後可以擷取該資料,並在下一個工作階段中使用資料。大部分應用

程式為可設定狀態。資料庫即為可設定狀態應用程式的範例。

PersistentVolume 可設定狀態應用程式使用 PersistentVolume 來儲存其資料。

PersistentVolume 為一種 Kubernetes 磁碟區,能夠保留其狀態和資料。它

VMware, Inc. 6

Page 7: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

獨立於網繭之外,即使在網繭已刪除或重新設定的情況下,也能繼續存在。

在 vSphere 環境中,PersistentVolume 物件會使用虛擬磁碟 (VMDK) 做為其

支援儲存區。

StorageClass Kubernetes 使用 StorageClass 來定義不同的儲存區層級,並說明用於支援

PersistentVolume 的儲存區的不同類型需求。在 vSphere 環境中,您可以將

儲存區類別連結至儲存區原則。身為 vSphere 管理員,您可以建立說明不同

儲存區需求的儲存區原則。虛擬機器儲存區原則可用作動態磁碟區佈建的

StorageClass 定義的一部分。

下列範例 YAML 檔案參考您稍早使用 vSphere Client 建立的金級儲存區原

則。產生的持續性磁碟區 VMDK 會放置於可滿足金級儲存區原則需求的相容

資料存放區上。

kind: StorageClass

apiVersion: storage.k8s.io/v1

metadata:

name: gold-sc

annotations:

storageclass.kubernetes.io/is-default-class: "true"

provisioner: csi.vsphere.vmware.com

parameters:

storagepolicyname: "Gold"

PersistentVolumeClaim 一般來說,應用程式或網繭可透過 PersistentVolumeClaim 要求持續性儲存

區。PersistentVolumeClaim 會指定儲存區的類型和類別、存取模式

(ReadWriteOnce 或 ReadWriteMany),以及 PersistentVolume 的其他參

數。然後,此要求可在 vSphere 環境中動態佈建對應的 PersistentVolume 物件以及基礎虛擬磁碟。

一旦建立宣告,PersistentVolume 即會自動繫結至宣告。網繭會使用該宣告

來掛接 PersistentVolume 和存取儲存區。

刪除此宣告時,會刪除對應的 PersistentVolume 物件和基礎儲存區。

kind: PersistentVolumeClaim

metadata:

name: persistent-VMDK

spec:

accessModes:

- ReadWriteOnce

resources:

requests:

storage: 5Gi

storageClassName: gold-sc

StatefulSet StatefulSet 會管理您可設定狀態應用程式的部署和擴充。StatefulSet 對於需

要穩定的識別碼或穩定的持續性儲存區的應用程式來說很重要。您可以設定

VMware 雲端原生儲存區入門

VMware, Inc. 7

Page 8: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

StatefulSet 以包含會自動產生 PersistentVolumeClaim 物件的

volumeClaimTemplates 項目。

雲端原生儲存區使用者

在 vSphere 雲端原生儲存區環境建立和監控 Kubernetes 磁碟區的程序中牽涉到的使用者類型一般可分為

兩個:Kubernetes 使用者和 vSphere 管理員。這兩個類型的使用者可存取不同工具,並執行不同的工作。

CNS Kubernetes 使用者

Kubernetes 使用者可能是 Kubernetes 開發人員和應用程式擁有者、Kubernetes 管理員,或兩者功能的結

合。Kubernetes 使用者在 雲端原生儲存區環境中執行的工作包括下列各項:

n 部署和管理 vSphere CSI。如需相關資訊,請參閱在具有 CSI 和 CPI 的 vSphere 上部署 Kubernetes 叢集 小節,其位於 GitHub 上的 Kubernetes vSphere 雲端提供者說明文件。

n 部署和管理可設定狀態應用程式。如需相關資訊,請參閱 GitHub 上 Kubernetes vSphere 雲端提供者

說明文件的用來測試 CSI 驅動程式功能的範例資訊清單小節。

n 執行持續性磁碟區的生命週期作業。

n 執行儲存區類別的生命週期作業。

CNS vSphere 使用者

CNS vSphere 使用者或 vSphere 管理員可存取 vSphere Client 以執行下列工作:

n 執行虛擬機器儲存區原則的生命週期作業。例如,建立虛擬機器儲存區原則,以用於 Kubernetes 儲存

區類別,並向 Kubernetes 使用者傳達其名稱。請參閱建立儲存區原則。

n 使用 vSphere Client 的雲端原生儲存區 區段來監控 Kubernetes 叢集間容器磁碟區的健全狀況和儲存

區原則符合性。請參閱跨 Kubernetes 叢集監控 Container 磁碟區。

雲端原生儲存區 元件

雲端原生儲存區 使用數個元件來與 vSphere 儲存區整合。

下圖顯示這些元件的互動方式。

VMware 雲端原生儲存區入門

VMware, Inc. 8

Page 9: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

CSI 外掛程式SPBM

FCD

vSphere vSAN

CNS 控制平面

Kubernetes 節點

VMFS NFS

原則管理與符合性

CacheDB Kubernetes

中繼資料彙總

區塊磁碟區管理

Kubernetes 叢集 在 雲端原生儲存區 環境中,Kubernetes 叢集是部署在 vSphere 中的虛擬機

器或節點的叢集。在叢集上部署可設定狀態應用程式時,Kubernetes 使用者

會直接與叢集互動。

vSphere Container Storage Interface (CSI)

vSphere CSI 是向容器 orchestrator (例如 Kubernetes) 上的容器化工作負載

公開 vSphere 儲存區的介面。它允許 vSAN 和其他類型的 vSphere 儲存

區。

在 Kubernetes 上,CSI 驅動程式會與樹狀結構外的 vSphere Cloud Controller Manager (CCM) 搭配使用。

Container Storage Interface 支援動態佈建容器磁碟區。

介面支援下列功能:

n vSphere 第一級磁碟功能。

n Kubernetes 區域。

n 傳統掛接和原始掛接。

n 單一 vCenter Server 和多個資料中心和叢集。

n 從多個資料存放區或資料存放區叢集佈建。

在 Kubernetes 上,CSI 驅動程式會與樹狀結構 vSphere Cloud Provider Interface (CPI) 搭配使用。CSI 驅動程式會以容器映像的形式提供,且必須

由叢集管理員進行部署。如需相關資訊,請參閱 GitHub 上的 Kubernetes vSphere Cloud Provider 說明文件中的在 vSphere 上以 CSI 和 CPI 部署

Kubernetes 叢集一節。

VMware 雲端原生儲存區入門

VMware, Inc. 9

Page 10: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

雲端原生儲存區 伺服器元

CNS 伺服器元件位於 vCenter Server 中。它是為容器磁碟區實作佈建和生

命週期作業的 vCenter Server 管理的延伸。

佈建 Container 磁碟區時,它會與「第一級磁碟」功能互動,以建立支援磁

碟區的虛擬磁碟。此外,CNS 伺服器元件會與以儲存區原則為基礎的管理通

訊,以保證磁碟獲得所需的服務層級。

CNS 也會執行查詢作業,允許您透過 vCenter Server 管理和監控容器磁碟

區及其支援虛擬磁碟。

第一級磁碟 (FCD) 也稱為「已改進虛擬磁碟」。這是與虛擬機器無關聯的具名虛擬磁碟。這些

磁碟存放在 VMFS、NFS 或 vSAN 資料存放區上,並支援 Container 磁碟

區。

以儲存區原則為基礎的管

以儲存區原則為基礎的管理是一項 vCenter Server 服務,支援根據指定的儲

存區需求來佈建持續性磁碟區。佈建之後,服務會監控具有所需原則特性之

磁碟區的符合性。

雲端原生儲存區 角色和權限

vSphere 使用者必須擁有特定的權限,才能執行與 雲端原生儲存區 相關的作業。

您可以建立數個角色以在參與 雲端原生儲存區 環境的物件上指派一組權限。

如需有關 vSphere 中的角色和權限,以及如何建立角色的詳細資訊,請參閱 vSphere 安全性 說明文件。

角色名稱 權限名稱 說明 要求於

CNS-SPBM 設定檔導向儲存 > 設定檔導向儲存更新 允許對虛擬機器儲存區原則進

行變更,例如建立和更新儲存

區虛擬機器儲存區原則。

根 vCenter Server

設定檔導向儲存 > 設定檔導向儲存視圖 允許檢視定義的儲存區原則。

CNS-VM 虛擬機器 > 組態 > 新增現有磁碟 允許將現有的虛擬磁碟新增到

虛擬機器。

所有叢集節點虛擬機器

虛擬機器 > 組態 > 新增或移除裝置 允許新增或移除任何非磁碟裝

置。

CNS-Datastore

資料存放區 > 低層級檔案作業 允許在資料存放區瀏覽器中執

行讀取、寫入、刪除和重新命

名作業。

持續性磁碟區所在的共用資料存

放區

VMware 雲端原生儲存區入門

VMware, Inc. 10

Page 11: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

角色名稱 權限名稱 說明 要求於

唯讀 預設角色 具有某物件之唯讀角色的使用

者能夠檢視該物件的狀態和有

關該物件的詳細資料。例如,

具有此角色的使用者可以尋找

所有節點虛擬機器可存取的共

用資料存放區。

對於區域和拓撲感知環境,節

點虛擬機器的所有上階 (例如

主機、叢集和資料中心) 都必

須針對設定為使用 CSI 驅動程

式和 CCM 的 vSphere 使用者

設定唯讀角色。若要允許讀取

標籤和類別以準備節點的拓

撲,則必須進行此設定。

節點虛擬機器所在的所有主機

資料中心

CNS UI privilege.Cns.label > privilege.Cns.Searchable.label

允許儲存區管理員查看 CNS UI。

VMware 雲端原生儲存區入門

VMware, Inc. 11

Page 12: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

vSphere 雲端原生儲存區管理員 2vSphere 管理員可為 Kubernetes 團隊提供儲存資源,並建立虛擬機器儲存區原則以說明不同的儲存區需求

和服務類別。佈建具有持續性儲存區的 Kubernetes 工作負載之後,vSphere 管理員可以監控支援儲存區資

源的生命週期,及其是否符合這些需求。

本章節討論下列主題:

n 雲端原生儲存區 的需求

n 建立儲存區原則

n 設定 Kubernetes 叢集虛擬機器

n 跨 Kubernetes 叢集監控 Container 磁碟區

雲端原生儲存區 的需求

您的 雲端原生儲存區 環境和參與 Kubernetes 叢集的虛擬機器必須符合數個需求。

雲端原生儲存區 需求

n vSphere 6.7 Update 3 或更新版本。

n Kubernetes 版本 1.14 及更新版本。

n 在虛擬機器上部署的 Kubernetes 叢集。如需在 vSphere 上部署 vSphere CSI 外掛程式以及執行

Kubernetes 叢集的詳細資料,請參閱 GitHub 中的 Kubernetes vSphere Cloud Provider 說明文件。

Kubernetes 叢集虛擬機器的需求

n 具有硬體版本 15 或更新版本的虛擬機器。在每個節點虛擬機器上安裝 VMware Tools。

n 虛擬機器硬體建議:

n 根據工作負載需求設定充足的 CPU 和記憶體。

n 針對節點虛擬機器上的主要磁碟使用 VMware Paravirtual SCSI 控制器。

n 所有虛擬機器都必須可存取共用資料存放區,例如 vSAN。

n 在每個節點虛擬機器上設定 disk.EnableUUID 參數。請參閱 設定 Kubernetes 叢集虛擬機器。

n 若要避免錯誤和不可預知的行為,請不要建立 CNS 節點虛擬機器的快照。

VMware, Inc. 12

Page 13: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

建立儲存區原則

將支援您的容器化應用程式的虛擬磁碟 (VMDK) 必須滿足特定儲存區需求。以 vSphere 使用者的身分,您

可以根據 Kubernetes 使用者提供給您的需求來建立虛擬機器儲存區原則。

儲存區原則將與支援您的應用程式的 VMDK 相關聯。

如果您的環境中有多個 vCenter Server 執行個體,請在每個執行個體上建立虛擬機器儲存區原則。跨所有

執行個體使用相同的原則名稱。

必要條件

n Kubernetes 使用者會識別將部署可設定狀態的容器化應用程式所在的 Kubernetes 叢集。

n Kubernetes 使用者會收集容器化應用程式的儲存區需求,並向 vSphere 使用者傳達。

n 所需權限:虛擬機器儲存區原則.更新和虛擬機器儲存區原則.檢視。

程序

1 在 vSphere Client 中,開啟建立虛擬機器儲存區原則精靈。

a 按一下功能表 > 原則和設定檔。

b 在原則和設定檔下,按一下虛擬機器儲存區原則。

c 按一下建立虛擬機器儲存區原則。

2 輸入原則名稱和說明,然後按下一步。

選項 動作

vCenter Server 選取 vCenter Server 執行個體。

名稱 輸入儲存區原則的名稱,例如 高效儲存。

說明 輸入儲存區原則的說明。

3 在原則結構頁面上,於資料存放區特定規則下,選取為 vSAN 儲存區啟用規則,然後按下一步。

4 在 vSAN 頁面上,定義原則規則集,並按下一步。

a 在可用性索引標籤上,定義站台災難容限和容許的故障次數。

b 在進階原則規則索引標籤上,定義進階原則規則,例如每個物件的磁碟等量區數目和 Flash Read Cache 保留區。

5 在儲存區相容性頁面上,檢閱符合此原則的 vSAN 資料存放區清單,然後按下一步。

VMware 雲端原生儲存區入門

VMware, Inc. 13

Page 14: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

6 在檢閱並完成頁面上,檢閱原則設定並按一下完成。

後續步驟

您現在可以向 Kubernetes 使用者通知儲存區原則名稱。您建立的虛擬機器儲存區原則將用作動態磁碟區佈

建的儲存區類別定義的一部分。

設定 Kubernetes 叢集虛擬機器

在每個節點虛擬機器上,啟用 disk.EnableUUID 參數,以便虛擬機器可以成功掛接虛擬磁碟。

針對參與叢集的每個虛擬機器節點執行下列步驟。

必要條件

n 為您的 Kubernetes 叢集建立數個虛擬機器。如需瞭解虛擬機器需求,請參閱 雲端原生儲存區 的需

求。

n 所需權限:虛擬機器.組態.設定。

備註 若要避免錯誤和不可預知的行為,請不要建立 CNS 節點虛擬機器的快照。

程序

1 在 vSphere Client 中的虛擬機器上按一下滑鼠右鍵,然後選取編輯設定。

2 按一下虛擬機器選項索引標籤,然後展開進階功能表。

3 按一下 [組態參數] 旁的編輯組態。

VMware 雲端原生儲存區入門

VMware, Inc. 14

Page 15: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

4 設定 disk.EnableUUID 參數。

如果此參數存在,請確保其值設定為 True。如果此參數不存在,請新增該參數並將值設定為 True。

名稱 值

disk.EnableUUID True

跨 Kubernetes 叢集監控 Container 磁碟區

顯示您環境中的 Container 磁碟區,並監控其儲存區原則符合性狀態。

程序

1 導覽至 vCenter Server 執行個體、資料中心或資料存放區。

2 按一下監控索引標籤,然後按一下雲端原生儲存區下的 Container 磁碟區。

3 觀察您環境中可用的 Container 磁碟區,並監控其儲存區原則符合性狀態。

4 在 [標籤] 欄中按一下查看全部連結,以檢視其他詳細資料。

5 按一下 [磁碟區名稱] 欄中的連結,以檢閱放置、符合性和儲存區原則之類的詳細資料。

備註 僅當基礎資料存放區是 vSAN 時,此視圖才可供使用。

VMware 雲端原生儲存區入門

VMware, Inc. 15

Page 16: VMware 雲端原生儲存區入門 - VMware vSphere 6...瞭解雲端原生儲存區 1 雲端原生儲存區是解決方案,為可設定狀態應用程式提供完整的資料管理。使用

VMware 雲端原生儲存區入門

VMware, Inc. 16