搭配 Azure Kubernetes Service 使用 Azure 受控 Lustre CSI 驅動程式
在本文中,您將瞭解如何在 Azure Kubernetes Service (AKS) 搭配 Azure Lustre CSI Driver for Kubernetes中規劃、安裝和使用 Azure 受控 Lustre。 此驅動程式是以容器支援介面 (CSI) 規格為基礎。
您可以使用適用於 Kubernetes 的 Azure Lustre CSI 驅動程式,從 AKS 中部署的 Kubernetes 容器存取 Azure 受控 Lustre 記憶體作為永續性記憶體磁碟區。
相容的 Kubernetes 版本
Kubernetes 的 Azure Lustre CSI 驅動程式與 AKS兼容。 目前不支援其他 Kubernetes 安裝。
支援 AKS Kubernetes 1.21 版和更新版本。 此支援包含您建立新 AKS 叢集時目前可用的所有版本。
重要
Azure Lustre CSI Driver for Kubernetes 目前僅適用於 AKS 節點集區的 Ubuntu Linux OS SKU。
相容的 Lustre 版本
Azure Lustre CSI Driver for Kubernetes 與 Azure 托管 Lustre相容。 目前不支援其他 Lustre 安裝。
Azure Lustre CSI Driver for Kubernetes 0.1.10 版和更新版本支援目前版本的 Azure 受控 Lustre 服務。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 已安裝 Azure CLI 工具的終端機環境。 請參閱 開始使用 Azure CLI。
- kubectl,Kubernetes 管理工具,安裝在終端機環境中。 請參閱 快速入門:使用 Azure CLI部署 Azure Kubernetes Service (AKS) 叢集。
- Azure 受控 Lustre 部署。 請參閱 Azure 受控 Lustre 文件。
規劃你的 AKS 部署
當您部署 Azure Kubernetes Service 時,有數個選項會影響 AKS 與 Azure 受控 Lustre 之間的作業。
決定要與 AKS 搭配使用的網路類型
兩種網路類型與Ubuntu Linux OS SKU 相容:kubenet 和 Azure 容器網路介面 (CNI) 驅動程式。 這兩個選項都與 Azure Lustre CSI Driver for Kubernetes 相容,但在您設定虛擬網路和 AKS 時,它們有不同的需求需要您了解。 如需判斷適當選取範圍的詳細資訊,請參閱 azure Kubernetes Service (AKS) 中應用程式的 網路概念。
確定 AKS 和 Azure 受控 Lustre 互連的網路架構
Azure 受控 Lustre 會在私人虛擬網路內運作。 您的 AKS 實例必須能夠連線到 Azure 受控 Lustre 虛擬網路。 設定 Azure 管理的 Lustre 與 AKS 之間網路配置的兩種常見方式如下:
- 在自己的虛擬網路中安裝 AKS,並與 Azure 管理的 Lustre 虛擬網路建立虛擬網路對等連接。
- 使用 AKS 中的「自帶 Azure 虛擬網路」 選項,將 AKS 安裝在 Azure 受控 Lustre 虛擬網路的新子網中。
注意
不建議您將 AKS 安裝在與 Azure 受控 Lustre 相同的子網中。
對等互連 AKS 和 Azure 受控 Lustre 虛擬網路
將兩個虛擬網路互聯的選項具有將網路管理分成具有特殊許可權的角色的優點。 對等互連也可以提供額外的彈性,因為您可以跨 Azure 訂用帳戶或區域實作。 虛擬網路對等互連需要兩個網路之間的協調,以避免選擇衝突的 IP 位址空間。
在 Azure 受控 Lustre 虛擬網路中的子網上安裝 AKS
使用 Azure Kubernetes 服務中的「自帶 Azure 虛擬網路」 功能,選擇將 AKS 叢集安裝於 Azure 受管的 Lustre 虛擬網路中,這在需要單一管理網路的情況下可能會帶來好處。 您必須在 Azure 受控 Lustre 虛擬網路中建立額外的子網,其大小符合 AKS 網路需求。
當您在 Azure 受控 Lustre 虛擬網路上布建 AKS 時,網路管理沒有許可權區隔。 AKS 服務主體需要 Azure 管理的 Lustre 虛擬網路的許可權。
設定驅動程式
若要啟用 Azure Lustre CSI Driver for Kubernetes,請執行下列步驟:
下列各節會更詳細地描述每個工作。
建立 Azure 受控 Lustre 文件系統叢集
如果您尚未建立 Azure 受控 Lustre 文件系統叢集,請立即建立叢集。 如需指示,請參閱 使用 Azure 入口網站建立 Azure 受控 Lustre 檔案系統。 目前,驅動程式只能與現有的 Azure 受控 Lustre 文件系統搭配使用。
建立 AKS 叢集
如果您尚未建立 AKS 叢集,請建立叢集部署。 請參閱 使用 Azure 入口網站部署 Azure Kubernetes Service (AKS) 叢集。
建立虛擬網路對等連結
注意
如果您在 Azure 受控的 Lustre 虛擬網路上的子網中安裝了 AKS,請略過此網路對等互連的步驟。
AKS 虛擬網路會建立在與 AKS 叢集資源群組不同的資源群組中。 您可以在 Azure 入口網站中,移至您的 AKS 叢集,然後進入 [屬性],找到 基礎結構 資源群組,以尋找此資源群組的名稱。 此資源群組包含必須與 Azure 受控 Lustre 虛擬網路配對的虛擬網路。 它會比對模式MC_aks-rg-name_aks-cluster-name<_>region<。><>
若要將 AKS 虛擬網路與 Azure 受控 Lustre 虛擬網路進行對等互連,請參閱 虛擬網路對等互連。
提示
由於MC_資源群組和虛擬網路的命名,因此多個 AKS 部署的網路名稱可能類似或相同。 當您設定對等互連時,請謹慎地挑選您打算選擇的 AKS 網路。
連線到 AKS 叢集
啟動一個可以使用 Azure CLI 工具的終端機會話,然後登入您的 Azure 帳戶:
az login
登入 Azure 入口網站。
尋找您的 AKS 叢集。 在 [概觀] 窗格中,選取 [Connect] 按鈕,然後複製命令 下載叢集認證。
在終端機會話中,貼上 命令以下載認證。 這個指令類似於:
az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
如果您的環境中沒有 kubectl,請進行安裝:
az aks install-cli
確保目前的上下文是您剛才安裝憑證的 AKS 叢集,並確認您可以連接到該叢集:
kubectl config current-context kubectl get deployments --all-namespaces=true
安裝驅動程式
若要安裝 Azure Lustre CSI Driver for Kubernetes,請執行下列命令:
curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azurelustre-csi-driver/main/deploy/install-driver.sh | bash
若要取得本機安裝的範例命令,請參閱 在 Kubernetes 叢集上安裝 Azure Lustre CSI 驅動程式。
建立及設定永續性磁碟區
若要為現有的 Azure 受控 Lustre 文件系統建立永續性磁碟區:
從 azurelustre-csi-driver 存放庫中的 /docs/examples/ 資料夾中複製下列組態檔。 如果您在 安裝驅動程式時複製存放庫,則您已經有可用的本機複本。
- storageclass_existing_lustre.yaml
- pvc_storageclass.yaml
如果您不想複製整個存放庫,您可以個別下載每個檔案。 開啟下列每個連結,複製檔案的內容,然後將內容貼到具有相同檔名的本機檔案中。
在 storageclass_existing_lustre.yaml 檔案中,更新 Lustre 叢集的內部名稱和 Lustre 管理服務 (MGS) IP 位址。
這兩個設定都會顯示在 Azure 入口網站的 [用戶端連線] 窗格上,供您使用 Azure 受控 Lustre 檔案系統。
進行這些更新:
將取代
EXISTING_LUSTRE_FS_NAME
為 Azure 受控 Lustre 檔案系統中 Lustre 叢集的系統指派內部名稱。 內部名稱通常是lustrefs
。 內部名稱不是您在建立檔案系統時提供的名稱。建議的
mount
命令包含下列位址字串中反白顯示的名稱。將
EXISTING_LUSTRE_IP_ADDRESS
取代為 MGS IP 位址。
若要建立記憶體類別和永續性磁碟區宣告,請執行下列
kubectl
命令:kubectl create -f storageclass_existing_lustre.yaml kubectl create -f pvc_storageclass.yaml
檢查安裝
如果您想要檢查您的安裝,您可以選擇性地使用回應 Pod 來確認驅動程式是否正常運作。
若要在寫入期間檢視控制台中的時間戳,請執行下列命令:
將下列程式代碼新增至回應 Pod:
while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
若要在寫入期間檢視控制台中的時間戳,請執行下列
kubectl
命令:`kubectl logs -f lustre-echo-date`