自建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上。
注意事项
[注意]
- 如果您的自建集群部署在阿里云ECS上,请参考[阿里云ECS上自建Kubernetes集群接入ACK注册集群]()
- 如果您使用ACK注册集群节点池功能为本地数据中心自建Kubernetes集群扩容了阿里云ECS节点,则默认打标了 alibabacloud.com/external=true
步骤一 在自建集群中配置CSI组件RAM权限
在注册集群中安装CSI组件前,您需要在接入集群中设置AK用来访问云服务的权限。设置AK前,您需要创建RAM用户并为其添加访问相关云资源的权限。
- 创建RAM用户。有关如何创建RAM用户的具体步骤,请参见创建RAM用户。
- 【自建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" }
]
}
- 为RAM用户添加权限。有关如何为RAM用户授权的具体步骤,请参见为RAM用户授权。
- 为RAM用户创建AK。有关如何为子账户创建AK,请参见获取AccessKey。
- 使用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并点击安装。
文章图片
步骤三 使用CSI存储插件
如何使用云盘存储卷,请参考云盘存储卷。
如何使用NAS存储卷,请参考NAS存储卷。
如何使用OSS存储卷,请参考OSS存储卷。
推荐阅读
- federation--kubernetes集群联邦的实现
- (1)redis集群原理及搭建与使用(1)
- 如何在Kubernetes|如何在Kubernetes 里添加自定义的 API 对象(一)
- k8s|k8s(六)(配置管理与集群安全机制)
- 啥是负载均衡、高并发、分布式、集群()
- 三十一、|三十一、 Elasticsearch集群搭建部署及配置
- springBoot2.*使用redis集群/单机方法
- centos7|centos7 redis安装/集群部署/slots迁移
- CentOS|CentOS 7.2搭建FastDFS 分布式文件系统,实现高可用集群
- Kubernetes服务(初学者指南)