自建Kubernetes叢集如何使用阿里雲CSI儲存元件

hjavn發表於2021-07-28

工具與資源中心
幫助開發者更加高效的工作,提供圍繞開發者全生命週期的工具與資源
developer.aliyun.com/tool?spm=a1z3...

阿里雲容器服務ACK的容器儲存功能基於Kubernetes儲存系統,深度融合阿里雲端儲存服務並完全相容Kubernetes原生的儲存服務,例如EmptyDir、HostPath、Secret、ConfigMap等儲存。ACK基於社群容器儲存介面(CSI)通過部署CSI外掛實現了阿里雲端儲存服務接入能力。容器服務ACK支援Pod自動繫結阿里云云盤、NAS、 OSS、CPFS、本地卷等儲存服務,每種儲存卷的主要特點及應用場景參見儲存CSI概述

前提條件

注意事項

[注意]

阿里雲CSI儲存元件只支援執行在阿里雲ECS節點上。自建Kubernetes叢集中的阿里雲ECS節點需要打標節點標籤 alibabacloud.com/external=true

  1. 如果您的自建叢集部署在阿里雲ECS上,請參考阿里雲ECS上自建Kubernetes叢集接入ACK註冊叢集
  2. 如果您使用ACK註冊叢集節點池功能為本地資料中心自建Kubernetes叢集擴容了阿里雲ECS節點,則預設打標了 alibabacloud.com/external=true

步驟一 在自建叢集中配置CSI元件RAM許可權

在註冊叢集中安裝CSI元件前,您需要在接入叢集中設定AK用來訪問雲服務的許可權。設定AK前,您需要建立RAM使用者併為其新增訪問相關雲資源的許可權。

  1. 建立RAM使用者。有關如何建立RAM使用者的具體步驟,請參見建立RAM使用者
  2. 建立許可權策略。有關建立許可權策略的具體操作步驟,請參見建立自定義策略。請授權RAM許可權如下所示:
{
    "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"
        }
    ]
}
  1. 為RAM使用者新增許可權。有關如何為RAM使用者授權的具體步驟,請參見為RAM使用者授權
  2. 為RAM使用者建立AK。有關如何為子賬戶建立AK,請參見獲取AccessKey
  3. 使用AK在自建Kubernetes叢集中建立名為alibaba-addon-secret的Secret資源,步驟二中安裝事件中心相關元件時將自動引用此AK訪問對應的雲服務資源。
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>'

您需要將上述程式碼中和替換為您獲取的AK資訊。

步驟二 元件安裝與升級

CSI元件安裝步驟如下所示:

  1. 登入容器服務控制檯

2)在控制檯左側導航欄中,單擊叢集
3)在叢集列表頁面中,單擊目標註冊叢集頁面右側的詳情
4)在叢集詳情頁籤,點選運維管理下的元件管理
5)找到csi-provisionercsi-plugin並點選安裝。
image.png

步驟三 使用CSI儲存外掛

如何使用雲盤儲存卷,請參考雲盤儲存卷
如何使用NAS儲存卷,請參考NAS儲存卷
如何使用OSS儲存卷,請參考OSS儲存卷

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章