搭配 Azure Kubernetes Service 使用 Azure 受控 Lustre CSI 驅動程式
在本文中,您將瞭解如何在 Azure Kubernetes Service 中規劃、安裝和使用 Azure 受控 Lustre (AKS) 與 Azure 受控 Lustre Kubernetes 容器支援介面驅動程式 (Azure Managed Lustre CSI 驅動程式)。
關於適用於 AKS 的 Azure 受控 Lustre CSI 驅動程式
適用於 AKS 的 Azure 受控 Lustre 容器支援介面 (CSI) 驅動程式可讓您從部署在 Azure Kubernetes Service (AKS) 中的 Kubernetes 容器存取 Azure 受控 Lustre 記憶體作為永續性記憶體磁碟區。
相容的 Kubernetes 版本
適用於 AKS 的 Azure 受控 Lustre CSI 驅動程式與 Azure Kubernetes Service (AKS) 相容。 目前不支援其他 Kubernetes 安裝。
支援 AKS Kubernetes 1.21 版和更新版本。 這包括建立新 AKS 叢集時目前可用的所有版本。
重要
Azure 受控 Lustre CSI 驅動程式目前僅適用於 AKS 節點集區的 Ubuntu Linux OS SKU。
相容的 Lustre 版本
適用於 AKS 的 Azure 受控 Lustre CSI 驅動程式與 Azure 受控 Lustre 相容。 目前不支援其他 Lustre 安裝。
Azure 受控 Lustre CSI 驅動程式 0.1.10 版和更新版本支援目前版本的 Azure 受控 Lustre 服務。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 已安裝 Azure CLI 工具的終端機環境。 請參閱 開始使用 Azure CLI
- Kubernetes 管理工具 kubectl 會安裝在終端機環境中。 請參閱 快速入門:使用 Azure CLI 部署 Azure Kubernetes Service (AKS) 叢集
- 建立 Azure 受控 Lustre 部署。 請參閱 Azure 受控 Lustre 檔案系統檔
規劃 AKS 部署
部署 Azure Kubernetes Service 時,有幾個選項會影響 AKS 與 Azure 受控 Lustre 之間的作業。
決定要與 AKS 搭配使用的網路類型
有兩種網路類型與UbuntuLinux OS SKU、kubenet和 Azure Container Network Interface (CNI) 驅動程式相容。 這兩個選項都與適用於 AKS 的 Azure 受控 Lustre CSI 驅動程式搭配運作,但在設定虛擬網路和 AKS 時,它們有不同的需求。 如需判斷適當選擇的詳細資訊,請參閱 Azure Kubernetes Service (AKS) 中應用程式的網路概念。
判斷 AKS 和 Azure 受控 Lustre 互連的網路架構
Azure 受控 Lustre 會在私人虛擬網路內運作,您的 Kubernetes 必須具有 Azure 受控 Lustre 虛擬網路的網路連線能力。 設定 Azure 受控 Lustre 與 AKS 之間的網路功能有兩種常見方式。
- 將 AKS 安裝到它自己的 虛擬網絡,並使用 Azure 受控 Lustre 虛擬網絡 建立虛擬網路對等互連。
- 使用 AKS 中的 [攜帶您自己的網络] 選項,在 Azure 受控 Lustre 虛擬網絡 的新子網上安裝 AKS。
注意
不建議將 AKS 安裝到與 Azure 受控 Lustre 相同的子網上。
對等互連 AKS 和 Azure 受控 Lustre 虛擬網路
將兩個不同虛擬網路對等互連的選項的優點是將各種網路的管理與不同的特殊許可權角色分開。 對等互連也可以提供額外的彈性,因為它可以跨 Azure 訂用帳戶或區域進行。 虛擬網絡 對等互連需要兩個網路之間的協調,以避免選擇衝突的IP網路空間。
將 AKS 安裝到 Azure 受控 Lustre 虛擬網路上的子網
在 AKS 中使用「攜帶您自己的網路」功能將 AKS 叢集安裝到 Azure 受控 Lustre 虛擬網路的選項,在您想要以單一方式管理網路的情況下,會比較有利。 您必須在 Azure 受控 Lustre 虛擬網路中建立符合 AKS 網路需求的額外子網大小。
將 AKS 布建到 Azure 受控 Lustre 網路,而 AKS 服務主體將需要 Azure 受控 Lustre 虛擬網路上的許可權時,網路管理沒有許可權區隔。
設定概觀
若要啟用適用於 Kubernetes 的 Azure 受控 Lustre CSI 驅動程式,請執行下列步驟:
安裝適用於 Kubernetes 的 Azure 受控 Lustre CSI 驅動程式。
選擇性地使用回應 Pod 檢查安裝 ,以確認驅動程式是否正常運作。
下列各節會更詳細地描述每個工作。
建立 Azure Managed Lustre 檔案系統
如果您尚未建立 Azure 受控 Lustre 文件系統叢集,請立即建立叢集。 如需指示,請參閱在 Azure 入口網站 中建立 Azure 受控 Lustre 文件系統。 目前,驅動程式只能與現有的 Azure 受控 Lustre 文件系統搭配使用。
建立 AKS 叢集
如果您尚未建立 AKS 叢集,請建立叢集部署。 請參閱 部署 Azure Kubernetes Service (AKS) 叢集。
建立虛擬網路對等互連
注意
如果您將 AKS 安裝到 Azure 受控 Lustre 虛擬網路上的子網,請略過此網路對等互連步驟。
AKS 虛擬網路會建立在與 AKS 叢集資源群組不同的資源群組中。 您可以在 Azure 入口網站中移至您的 AKS 叢集,選擇 [屬性 ] 刀鋒視窗並尋找 [基礎結構 資源群組],以尋找此資源群組的名稱。 此資源群組包含必須與 Azure 受控 Lustre 虛擬網路配對的虛擬網路。 它會比對模式MC_aks-rg-name_aks-cluster-name>_<region>。<<>
請洽詢 虛擬網絡 對等互連與 Azure 管理 Lustre 虛擬網路對等互連 AKS 虛擬網路。
提示
由於MC_資源群組和虛擬網路的命名,因此多個 AKS 部署的網路名稱可能類似或相同。 設定對等互連時,請密切關注您要選擇的 AKS 網路。
連線到 AKS 叢集
執行下列步驟來連線到 Azure Kubernetes Service 叢集:
開啟具有 Azure CLI 工具存取權的終端機會話,並登入您的 Azure 帳戶。
az login
登入 Azure 入口網站。
尋找您的 AKS 叢集。 選取 [概 觀] 刀鋒視窗,然後選取 [連線 ] 按鈕,然後複製 [ 下載叢集認證] 命令。
在您的終端機會話中,貼上 命令以下載認證。 它會是類似下列的命令:
az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
如果您的環境中沒有 kubectl,請安裝 kubectl。
az aks install-cli
確認目前的內容是您剛安裝認證的 AKS 叢集,而且您可以連線到該叢集:
kubectl config current-context kubectl get deployments --all-namespaces=true
安裝 CSI 驅動程式
若要安裝 CSI 驅動程式,請執行下列命令:
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/ 資料夾中複製下列組態檔。 如果您在安裝 CSI 驅動程式時複製存放庫,則已經有可用的本機複本。
- storageclass_existing_lustre.yaml
- pvc_storageclass.yaml
如果您不想複製整個存放庫,您可以個別下載每個檔案。 開啟下列每個連結,複製檔案的內容,然後將內容貼到具有相同檔名的本機檔案中。
在 storageclass_existing_lustre.yaml 檔案中,更新 Lustre 叢集的內部名稱和 MSG IP 位址。
這兩個設定都會顯示在 azure Lustre 檔案系統的 [用戶端連線] 頁面上的 [Azure 入口網站]。
進行這些更新:
將取代
EXISTING_LUSTRE_FS_NAME
為 Azure 受控 Lustre 檔案系統中 Lustre 叢集的系統指派內部名稱。 內部名稱通常是lustrefs
。 內部名稱不是您在建立檔案系統時提供的名稱。建議的
mount
命令包含下列位址字串中反白顯示的名稱。將取代
EXISTING_LUSTRE_IP_ADDRESS
為 MSG 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`
下一步
- 瞭解如何 使用封存作業從文件系統匯出檔案。