阿里云容器服务ACK的容器存储功能深度融合阿里云存储服务,完全兼容Kubernetes原生的存储服务,可通过部署CSI存储组件接入阿里云存储服务。ACK支持Pod自动绑定阿里云云盘、NAS、OSS、CPFS、本地卷等存储服务。本文介绍如何在注册集群中使用阿里云CSI存储。
前提条件
- 已创建注册集群,并将自建Kubernetes集群接入注册集群。具体操作,请参见创建注册集群并接入本地数据中心集群。
- 已为您的自建Kubernetes集群扩容了阿里云ECS节点。关于如何为自建Kubernetes集群扩容阿里云ECS节点,请参见创建节点池并扩容。重要 阿里云CSI存储组件只支持运行在阿里云ECS节点上,因此需要为自建Kubernetes集群中的阿里云ECS节点添加节点标签
alibabacloud.com/external=true
。 - 通过Kubectl工具连接注册集群。具体操作,请参见通过kubectl工具连接集群。
注意事项
- 如果您的自建Kubernetes集群部署在阿里云ECS上,您需要为ECS实例添加节点标签。关于如何为ECS实例添加节点标签,请参见自建Kubernetes集群接入ACK注册集群后的ECS节点初始化配置。
- 如果您使用注册集群节点池功能为本地数据中心自建Kubernetes集群扩容的阿里云ECS节点,则默认已添加节点标签
alibabacloud.com/external=true
。
步骤一:在自建Kubernetes集群中配置CSI组件的RAM权限
在注册集群中安装CSI存储组件前,您需要在自建Kubernetes集群中设置AccessKey用来访问云服务的权限。设置AccessKey前,您需要创建RAM用户并为其添加访问相关云资源的权限。
- 创建RAM用户。具体操作,请参见创建RAM用户。
- 创建自定义权限策略。关于创建自定义权限策略的操作步骤,请参见创建自定义权限策略。通过以下自定义策略示例,添加磁盘、快照、快照策略、资源标签、实例、文件系统及仓库的管理权限。关于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" } ] }
- 为RAM用户添加权限。具体操作,请参见为RAM用户授权。
- 为RAM用户创建AccessKey。具体操作,请参见获取AccessKey。
- 使用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组件
- 登录容器服务管理控制台。
- 在控制台左侧导航栏中,单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理详情页左侧导航栏,选择 。
- 单击存储页签,在csi-plugin及csi-provisioner卡片单击安装。
- 在提示对话框中确认版本信息后单击确定。安装成功后,对应组件区域会提示安装成功,且可查看组件当前版本。
步骤三:使用存储卷
可在下表查看注册集群对于各存储卷的使用情况:
存储卷类型 | 参考链接 |
---|---|
NAS | |
OSS | |
本地存储卷 | |
CPFS | |
CNFS | |
云盘 | 注册集群不支持使用云盘。 |