自建Kubernetes集群如何使用阿里云CSI存储组件

工具与资源中心
帮助开发者更加高效的工作,提供围绕开发者全生命周期的工具与资源
https://developer.aliyun.com/...
阿里云容器服务ACK的容器存储功能基于Kubernetes存储系统,深度融合阿里云存储服务并完全兼容Kubernetes原生的存储服务,例如EmptyDir、HostPath、Secret、ConfigMap等存储。ACK基于社区容器存储接口(CSI)通过部署CSI插件实现了阿里云存储服务接入能力。容器服务ACK支持Pod自动绑定阿里云云盘、NAS、 OSS、CPFS、本地卷等存储服务,每种存储卷的主要特点及应用场景参见存储CSI概述。
前提条件

  • 您需要创建一个注册集群,并将自建Kubernetes集群接入注册集群。具体操作,请参见创建阿里云注册集群并接入自建Kubernetes集群。
  • 您的自建集群已经扩容了阿里云ECS节点,如何为自建Kubernetes集群扩容阿里云ECS节点请参考创建混合集群, 或您的自建集群部署在阿里云ECS上。
    注意事项
    [注意]
阿里云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用户并为其添加访问相关云资源的权限。
  3. 创建RAM用户。有关如何创建RAM用户的具体步骤,请参见创建RAM用户。
  4. 【自建Kubernetes集群如何使用阿里云CSI存储组件】创建权限策略。有关创建权限策略的具体操作步骤,请参见创建自定义策略。请授权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" }

    ]
    }
  5. 为RAM用户添加权限。有关如何为RAM用户授权的具体步骤,请参见为RAM用户授权。
  6. 为RAM用户创建AK。有关如何为子账户创建AK,请参见获取AccessKey。
  7. 使用AK在自建Kubernetes集群中创建名为alibaba-addon-secret的Secret资源,步骤二中安装事件中心相关组件时将自动引用此AK访问对应的云服务资源。
    kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=' --from-literal='access-key-secret='
    您需要将上述代码中和替换为您获取的AK信息。
步骤二 组件安装与升级
CSI组件安装步骤如下所示:
1)登录容器服务控制台。
2)在控制台左侧导航栏中,单击集群。
3)在集群列表页面中,单击目标注册集群页面右侧的详情。
4)在集群详情页签,点击运维管理下的组件管理。
5)找到csi-provisioner和csi-plugin并点击安装。
自建Kubernetes集群如何使用阿里云CSI存储组件
文章图片

步骤三 使用CSI存储插件
如何使用云盘存储卷,请参考云盘存储卷。
如何使用NAS存储卷,请参考NAS存储卷。
如何使用OSS存储卷,请参考OSS存储卷。

    推荐阅读