Skip to main content
此產品有較新版本可以使用。
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

列舉後端組態選項與範例Azure NetApp Files

貢獻者

瞭解 Azure NetApp Files 的 NFS 和 SMB 後端組態選項、並檢閱組態範例。

後端組態選項

Astra Trident 使用您的後端組態(子網路、虛擬網路、服務層級和位置)、在所要求位置的可用容量集區上建立 Azure NetApp Files Volume 、並符合所要求的服務層級和子網路。

註 Astra Trident不支援手動QoS容量集區。

Azure NetApp Files 後端提供這些組態選項。

參數 說明 預設

version

永遠為1

storageDriverName

儲存驅動程式名稱

「Azure - NetApp-Files」

backendName

自訂名稱或儲存後端

驅動程式名稱+「_」+隨機字元

subscriptionID

Azure訂閱的訂閱ID

在 AKS 叢集上啟用受管理的身分識別時為選用項目。

tenantID

應用程式註冊的租戶ID

在 AKS 叢集上使用託管身分識別或雲端身分識別時、為選用項目。

clientID

應用程式註冊的用戶端ID

在 AKS 叢集上使用託管身分識別或雲端身分識別時、為選用項目。

clientSecret

應用程式註冊的用戶端機密

在 AKS 叢集上使用託管身分識別或雲端身分識別時、為選用項目。

serviceLevel

其中之一 StandardPremium`或 `Ultra

""(隨機)

location

要建立新磁碟區的Azure位置名稱

在 AKS 叢集上啟用受管理的身分識別時為選用項目。

resourceGroups

用於篩選已探索資源的資源群組清單

「[]」(無篩選器)

netappAccounts

篩選探索資源的NetApp帳戶清單

「[]」(無篩選器)

capacityPools

用於篩選已探索資源的容量集區清單

「[]」(無篩選器、隨機)

virtualNetwork

具有委派子網路的虛擬網路名稱

"

subnet

委派給的子網路名稱 Microsoft.Netapp/volumes

"

networkFeatures

Volume的vnet功能集可能是 BasicStandard

並非所有地區都提供網路功能、可能必須在訂閱中啟用。指定 networkFeatures 如果未啟用此功能、則會導致磁碟區資源配置失敗。

"

nfsMountOptions

精細控制NFS掛載選項。

SMB磁碟區已忽略。

若要使用NFS 4.1版掛載磁碟區、請包含 nfsvers=4 在以逗號分隔的掛載選項清單中、選擇NFS v4.1。

儲存類別定義中設定的掛載選項會覆寫在後端組態中設定的掛載選項。

"nfsves=3"

limitVolumeSize

如果要求的磁碟區大小高於此值、則資源配置失敗

""(預設不強制執行)

debugTraceFlags

疑難排解時要使用的偵錯旗標。範例: \{"api": false, "method": true, "discovery": true}。除非您正在進行疑難排解並需要詳細的記錄傾印、否則請勿使用此功能。

null

nasType

設定NFS或SMB磁碟區建立。

選項包括 nfssmb 或null。NFS磁碟區的預設值設為null。

nfs

註 如需網路功能的詳細資訊、請參閱 "設定Azure NetApp Files 適用於某個聲音量的網路功能"

必要的權限與資源

如果您在建立 PVC 時收到「找不到容量集區」錯誤、您的應用程式註冊可能沒有相關的必要權限和資源(子網路、虛擬網路、容量集區)。如果啟用偵錯、Astra Trident會記錄在建立後端時探索到的Azure資源。確認使用的角色是否適當。

的值 resourceGroupsnetappAccountscapacityPoolsvirtualNetwork`和 `subnet 可以使用簡短或完整名稱來指定。在大多數情況下、建議使用完整名稱、因為短名稱可以符合多個名稱相同的資源。

resourceGroupsnetappAccounts`和 `capacityPools 值是篩選器、可將探索到的資源集合限制在此儲存後端可用的資源、並可任意組合指定。完整名稱格式如下:

類型 格式

資源群組

<資源群組>

NetApp帳戶

資源群組//<NetApp帳戶>

容量資源池

資源群組//<NetApp帳戶>/<容量資源池>

虛擬網路

資源群組//<虛擬網路>

子網路

資源群組//<虛擬網路>/<子網路>

Volume資源配置

您可以在組態檔的特殊區段中指定下列選項、以控制預設的Volume資源配置。請參閱 組態範例 以取得詳細資料。

參數 說明 預設

exportRule

匯出新磁碟區的規則。

exportRule 必須是以逗號分隔的清單、以CIDR表示法列出所有的IPv4位址或IPv4子網路組合。

SMB磁碟區已忽略。

「0.00.0.0/0」

snapshotDir

控制.snapshot目錄的可見度

"假"

size

新磁碟區的預設大小

100公克

unixPermissions

新磁碟區的UNIX權限(4個八進位數字)。

SMB磁碟區已忽略。

""(預覽功能、訂閱時需要白名單)

組態範例

下列範例顯示基本組態、讓大部分參數保留預設值。這是定義後端最簡單的方法。

最小組態

這是絕對最低的後端組態。有了這項組態、 Astra Trident 會探索您在設定位置中委派給 Azure NetApp Files 的所有 NetApp 帳戶、容量集區和子網路、並隨機將新磁碟區放在其中一個集區和子網路上。因為 nasType 省略 nfs 預設會套用、後端會為NFS磁碟區進行資源配置。

當您剛開始使用 Azure NetApp Files 並試用時、這項組態是理想的選擇、但實際上您會想要為您所配置的磁碟區提供額外的範圍。

---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
管理的身分識別

此後端組態已不再如此 subscriptionIDtenantIDclientID`和 `clientSecret,使用託管身分識別時為選用功能。

apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-anf-1
  namespace: trident
spec:
  version: 1
  storageDriverName: azure-netapp-files
  capacityPools: ["ultra-pool"]
  resourceGroups: ["aks-ami-eastus-rg"]
  netappAccounts: ["smb-na"]
  virtualNetwork: eastus-prod-vnet
  subnet: eastus-anf-subnet
雲端身分識別

此後端組態已不再如此 tenantIDclientID`和 `clientSecret(使用雲端身分識別時為選用功能)。

apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-anf-1
  namespace: trident
spec:
  version: 1
  storageDriverName: azure-netapp-files
  capacityPools: ["ultra-pool"]
  resourceGroups: ["aks-ami-eastus-rg"]
  netappAccounts: ["smb-na"]
  virtualNetwork: eastus-prod-vnet
  subnet: eastus-anf-subnet
  location: eastus
  subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
具有容量集區篩選器的特定服務層級組態

此後端組態可將Volume置於Azure中 eastus 位置 Ultra 容量資源池:Astra Trident 會自動探索該位置中委派給 Azure NetApp Files 的所有子網路、並隨機在其中一個子網路上放置新的磁碟區。

---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
serviceLevel: Ultra
capacityPools:
- application-group-1/account-1/ultra-1
- application-group-1/account-1/ultra-2
進階組態

此後端組態可進一步將磁碟區放置範圍縮小至單一子網路、並修改部分Volume資源配置預設值。

---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
serviceLevel: Ultra
capacityPools:
- application-group-1/account-1/ultra-1
- application-group-1/account-1/ultra-2
virtualNetwork: my-virtual-network
subnet: my-subnet
networkFeatures: Standard
nfsMountOptions: vers=3,proto=tcp,timeo=600
limitVolumeSize: 500Gi
defaults:
  exportRule: 10.0.0.0/24,10.0.1.0/24,10.0.2.100
  snapshotDir: 'true'
  size: 200Gi
  unixPermissions: '0777'
虛擬集區組態

此後端組態可在單一檔案中定義多個儲存集區。當您有多個容量集區支援不同的服務層級、而且想要在Kubernetes中建立代表這些層級的儲存類別時、這很有用。虛擬資源池標籤是用來區分資源池的依據 performance

---
version: 1
storageDriverName: azure-netapp-files
subscriptionID: 9f87c765-4774-fake-ae98-a721add45451
tenantID: 68e4f836-edc1-fake-bff9-b2d865ee56cf
clientID: dd043f63-bf8e-fake-8076-8de91e5713aa
clientSecret: SECRET
location: eastus
resourceGroups:
- application-group-1
networkFeatures: Basic
nfsMountOptions: vers=3,proto=tcp,timeo=600
labels:
  cloud: azure
storage:
- labels:
    performance: gold
  serviceLevel: Ultra
  capacityPools:
  - ultra-1
  - ultra-2
  networkFeatures: Standard
- labels:
    performance: silver
  serviceLevel: Premium
  capacityPools:
  - premium-1
- labels:
    performance: bronze
  serviceLevel: Standard
  capacityPools:
  - standard-1
  - standard-2

儲存類別定義

以下內容 StorageClass 定義請參閱上述儲存資源池。

使用的範例定義 parameter.selector 欄位

使用 parameter.selector 您可以為每個項目指定 StorageClass 用於裝載磁碟區的虛擬集區。該磁碟區會在所選的資源池中定義各個層面。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: gold
provisioner: csi.trident.netapp.io
parameters:
  selector: "performance=gold"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: silver
provisioner: csi.trident.netapp.io
parameters:
  selector: "performance=silver"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: bronze
provisioner: csi.trident.netapp.io
parameters:
  selector: "performance=bronze"
allowVolumeExpansion: true

SMB磁碟區的定義範例

使用 nasTypenode-stage-secret-name`和 `node-stage-secret-namespace、您可以指定SMB磁碟區、並提供所需的Active Directory認證資料。

預設命名空間的基本組態
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: anf-sc-smb
provisioner: csi.trident.netapp.io
parameters:
  backendType: "azure-netapp-files"
  trident.netapp.io/nasType: "smb"
  csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
  csi.storage.k8s.io/node-stage-secret-namespace: "default"
每個命名空間使用不同的機密
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: anf-sc-smb
provisioner: csi.trident.netapp.io
parameters:
  backendType: "azure-netapp-files"
  trident.netapp.io/nasType: "smb"
  csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
  csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
每個磁碟區使用不同的機密
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: anf-sc-smb
provisioner: csi.trident.netapp.io
parameters:
  backendType: "azure-netapp-files"
  trident.netapp.io/nasType: "smb"
  csi.storage.k8s.io/node-stage-secret-name: ${pvc.name}
  csi.storage.k8s.io/node-stage-secret-namespace: ${pvc.namespace}
註 nasType: smb 支援SMB磁碟區的集區篩選器。 nasType: nfsnasType: null NFS集區的篩選器。

建立後端

建立後端組態檔之後、請執行下列命令:

tridentctl create backend -f <backend-file>

如果後端建立失敗、表示後端組態有問題。您可以執行下列命令來檢視記錄、以判斷原因:

tridentctl logs

識別並修正組態檔的問題之後、您可以再次執行create命令。