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

工具与资源中心
帮助开发者更加高效的工做,提供围绕开发者全生命周期的工具与资源
https://developer.aliyun.com/... segmentfault

阿里云容器服务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。url

  1. 若是您的自建集群部署在阿里云ECS上,请参考[阿里云ECS上自建Kubernetes集群接入ACK注册集群]()
  2. 若是您使用ACK注册集群节点池功能为本地数据中心自建Kubernetes集群扩容了阿里云ECS节点,则默认打标了 alibabacloud.com/external=truespa

    步骤一 在自建集群中配置CSI组件RAM权限

    在注册集群中安装CSI组件前,您须要在接入集群中设置AK用来访问云服务的权限。设置AK前,您须要建立RAM用户并为其添加访问相关云资源的权限。插件

  3. 建立RAM用户。有关如何建立RAM用户的具体步骤,请参见建立RAM用户。
  4. 建立权限策略。有关建立权限策略的具体操做步骤,请参见建立自定义策略。请受权RAM权限以下所示:
    {
    "Version": "1",
    "Statement": [code

    {
         "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=<your access key id>' --from-literal='access-key-secret=<your access key secret>'
    您须要将上述代码中和替换为您获取的AK信息。

步骤二 组件安装与升级

CSI组件安装步骤以下所示:生命周期

1)登陆容器服务控制台。
2)在控制台左侧导航栏中,单击集群。
3)在集群列表页面中,单击目标注册集群页面右侧的详情。
4)在集群详情页签,点击运维管理下的组件管理。
5)找到csi-provisioner和csi-plugin并点击安装。

步骤三 使用CSI存储插件

如何使用云盘存储卷,请参考云盘存储卷。如何使用NAS存储卷,请参考NAS存储卷。如何使用OSS存储卷,请参考OSS存储卷。