全部產品
Search
文件中心

File Storage NAS:通過阿里雲CSI儲存群組件掛載NAS(推薦)

更新時間:Sep 05, 2024

本文介紹如何在ACK One註冊叢集中使用阿里雲的CSI儲存群組件,將NAS檔案系統掛載至Kubernetes叢集進行訪問。

前提條件

注意事項

  • 如果您的自建Kubernetes叢集部署在阿里雲ECS上,您需要為ECS執行個體添加節點標籤。關於如何為ECS執行個體添加節點標籤,請參見自建Kubernetes叢集接入ACK註冊叢集後的ECS節點初始化配置

  • 如果您使用註冊叢集節點池功能為本機資料中心自建Kubernetes叢集擴容的阿里雲ECS節點,則預設已添加節點標籤alibabacloud.com/external=true

步驟一:為CSI組件配置RAM許可權

通過onectl配置

  1. 在本地安裝配置onectl。具體操作,請參見通過onectl管理註冊叢集

  2. onectl通過RAM使用者的AccessKey來訪問雲端服務資源,您可以執行以下命令,配置RAM使用者的CSI組件許可權。

    onectl ram-user grant --addon csi-plugin

    預期輸出:

    Ram policy ack-one-registered-cluster-policy-csi-plugin granted to ram user ack-one-user-ce313528c3 successfully.

通過控制台配置

在註冊叢集中安裝CSI儲存群組件前,您需要在自建Kubernetes叢集中設定AccessKey用來訪問雲端服務的許可權。設定AccessKey前,您需要建立RAM使用者並為其添加訪問相關雲資源的許可權。

  1. 建立RAM使用者。具體操作,請參見建立RAM使用者

  2. 建立自訂權限原則。

    關於建立自訂權限原則的操作步驟,請參見建立自訂權限原則

    通過以下自訂策略樣本,添加磁碟、快照、快照策略、資源標籤、執行個體、檔案系統及倉庫的系統管理權限。關於API參考的更多資訊,請參見API概覽

    展開查看自訂策略樣本內容

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "ecs:AttachDisk",
                    "ecs:DetachDisk",
                    "ecs:DescribeDisks",
                    "ecs:CreateDisk",
                    "ecs:ResizeDisk",
                    "ecs:CreateSnapshot",
                    "ecs:DeleteSnapshot",
                    "ecs:CreateAutoSnapshotPolicy",
                    "ecs:ApplyAutoSnapshotPolicy",
                    "ecs:CancelAutoSnapshotPolicy",
                    "ecs:DeleteAutoSnapshotPolicy",
                    "ecs:DescribeAutoSnapshotPolicyEX",
                    "ecs:ModifyAutoSnapshotPolicyEx",
                    "ecs:AddTags",
                    "ecs:DescribeTags",
                    "ecs:DescribeSnapshots",
                    "ecs:ListTagResources",
                    "ecs:TagResources",
                    "ecs:UntagResources",
                    "ecs:ModifyDiskSpec",
                    "ecs:CreateSnapshot",
                    "ecs:DeleteDisk",
                    "ecs:DescribeInstanceAttribute",
                    "ecs:DescribeInstances"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "nas:DescribeFileSystems",
                    "nas:DescribeMountTargets",
                    "nas:AddTags",
                    "nas:DescribeTags",
                    "nas:RemoveTags",
                    "nas:CreateFileSystem",
                    "nas:DeleteFileSystem",
                    "nas:ModifyFileSystem",
                    "nas:CreateMountTarget",
                    "nas:DeleteMountTarget",
                    "nas:ModifyMountTarget",
                    "nas:TagResources",
                    "nas:SetDirQuota",
                    "nas:EnableRecycleBin",
                    "nas:GetRecycleBinAttribute"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            },
            {
                "Action": [
                    "oss:PutBucket",
                    "oss:GetObjectTagging",
                    "oss:ListBuckets",
                    "oss:PutBucketTags",
                    "oss:GetBucketTags",
                    "oss:PutBucketEncryption",
                    "oss:GetBucketInfo"
                ],
                "Resource": [
                    "*"
                ],
                "Effect": "Allow"
            }
        ]
    }
  3. 為RAM使用者添加許可權。具體操作,請參見為RAM使用者授權

  4. 為RAM使用者建立AccessKey。具體操作,請參見擷取AccessKey

  5. 使用AccessKey在註冊叢集中建立名為alibaba-addon-secret的Secret資源。

    安裝CSI組件時將自動引用此AccessKey訪問對應的雲端服務資源。

    kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your access key id>' --from-literal='access-key-secret=<your access key secret>'
    說明

    <your access key id><your access key secret>為上一步擷取的AccessKey資訊。

步驟二:安裝CSI外掛程式

通過onectl安裝

執行以下命令,安裝CSI組件。

onectl addon install csi-plugin
onectl addon install csi-provisioner

預期輸出:

Addon csi-plugin, version **** installed.
Addon csi-provisioner, version **** installed.

通過控制台安裝

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 組件管理

  3. 單擊儲存頁簽,在csi-plugincsi-provisioner卡片單擊安裝

  4. 提示對話方塊中確認版本資訊後,單擊確定

步驟三:使用儲存卷

您可以通過以下兩種方式掛載NAS檔案系統,持久化應用資料。