設定Azure NetApp Files 一個靜態後端
使用 Azure NetApp Files 作為 Trident 的後端。此後端支援 NFS 和 SMB 磁碟區。Trident 支援 Azure Kubernetes Service(AKS)叢集的託管身分識別和工作負載身分識別。
支援的 Azure 雲端環境
Trident 支援多種 Azure 雲端環境中的 Azure NetApp Files 後端。
支援的 Azure 雲端包括:
-
Azure 商業版
-
Azure Government(Azure Government / MAG)
部署 Trident 或設定 Azure NetApp Files 後端時、請確保 Azure Resource Manager 和驗證端點與您的 Azure 雲端環境相符。
查看 Azure NetApp Files 驅動程式支援
Trident 提供以下 Azure NetApp Files 儲存驅動程式。
支援的存取模式包括 ReadWriteOnce (RWO)、ReadOnlyMany (ROX)、ReadWriteMany (RWX)和 ReadWriteOncePod (RWOP)。
| 驅動程式 | 傳輸協定 | Volume模式 | 支援的存取模式 | 支援的檔案系統 |
|---|---|---|---|---|
《azure-NetApp-fil形》 |
NFS |
檔案系統 |
Rwo 、 ROX 、 rwx 、 RWOP |
|
審查注意事項
-
Azure NetApp Files 不支援小於 50 GiB 的磁碟區。當請求較小的磁碟區時,Trident 會建立一個 50 GiB 的磁碟區。
-
Trident 僅支援掛載至 Windows 節點上執行的 Pod 的 SMB 磁碟區。
-
Azure NetApp Files 在非商業 Azure 雲端環境中部署需要使用特定於雲端的 Azure Resource Manager 和驗證終端點。請確保 Trident 和任何後端組態都使用適合您 Azure 雲端環境的終端點。
使用 AKS 的託管身分
Trident 支援 "託管身分識別" AKS 叢集。
如果您使用 `tridentctl`建立或管理 Azure NetApp Files 後端,請確保已將其配置為正確的 Azure 雲端環境。
若要使用託管身分,您必須具備:
-
使用 aks 部署的 Kubernetes 叢集
-
在 AKS Kubernetes 叢集上設定的託管身分
-
Trident 已安裝並將
cloudProvider設定為"Azure"
編輯 tridentorchestrator_cr.yaml 並設定 cloudProvider 為 "Azure"。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullPolicy: IfNotPresent
cloudProvider: "Azure"
以下範例會安裝 Trident 並設定 cloudProvider,使用環境變數 $CP:
helm install trident trident-operator-100.2602.0.tgz --create-namespace --namespace <trident-namespace> --set cloudProvider=$CP
以下範例安裝 Trident 並將 cloud-provider 標誌設為 Azure:
tridentctl install --cloud-provider="Azure" -n trident
使用 AKS 的工作負載身分識別
工作負載身分可讓 Kubernetes Pod 透過以工作負載身分進行驗證來存取 Azure 資源。
如果您使用 `tridentctl`建立或管理 Azure NetApp Files 後端,請確保已將其配置為正確的 Azure 雲端環境。
若要使用工作負載身分,您必須具備:
-
使用 aks 部署的 Kubernetes 叢集
-
在 OKS Kubernetes 叢集上設定的工作負載識別和 oidc-c發行 者
-
Trident 已安裝,
cloudProvider設定為"Azure",cloudIdentity設定為工作負載識別值
編輯 tridentorchestrator_cr.yaml`並設定 `cloudProvider`為 `"Azure"。設定 cloudIdentity`為 `azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
imagePullPolicy: IfNotPresent
cloudProvider: "Azure"
cloudIdentity: 'azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx' # Edit
使用下列環境變數設定 cloud-provider ( CP ) 和 cloud-identity ( CI ) 標誌的值:
export CP="Azure"
export CI="'azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx'"
以下範例安裝 Trident 並使用 cloudProvider 設定 $CP,並使用 cloudIdentity 設定 $CI:
helm install trident trident-operator-100.6.0.tgz --set cloudProvider=$CP --set cloudIdentity="$CI"
請使用以下環境變數設定 cloud provider 和 cloud identity 標誌的值:
export CP="Azure"
export CI="azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx"
以下範例安裝 Trident 並將 cloud-provider`設定為 `$CP、將 cloud-identity`設定為 `$CI:
tridentctl install --cloud-provider=$CP --cloud-identity="$CI" -n trident