一、部署在集群内的 Kubernetes 对象
| Kubernetes 对象名称 | 类型 | 默认占用资源 | 所属 Namespaces |
| goosefs-csi-controller | Deployment | 0.02核CPU,220MB内存 | kube-system |
| goosefs-csi-nodeplugin | DaemonSet | 0.06核CPU,270MB内存 | kube-system |
| csi-goosefs-controller | ServiceAccount | – | kube-system |
| csi-goosefs-controller | ClusterRole | – | – |
| csi-goosefs-controller | ClusterRoleBinding | – | – |
| csi-goosefs-node | ServiceAccount | – | kube-system |
| csi-goosefs-node | ClusterRole | – | – |
| csi-goosefs-node | ClusterRoleBinding | – | – |
| goosefs-csi-fuse-config | ConfigMap | – | kube-system |
| com.tencent.cloud.csi.goosefs | CSIDriver | – | – |
二、使用场景
数据加速器(Data Accelerator Goose FileSystem,GooseFS)是由腾讯云推出的多协议、高性能、大吞吐的数据加速服务。GooseFS 可以为上层计算应用提供统一的命名空间和访问协议,方便用户在不同的存储系统管理和流转数据。依托对象存储作为数据存储底座的海量存储、低成本优势,GooseFS 不仅可以加速海量数据分析、机器学习、人工智能等业务访问存储的性能,还可以帮助业务实现冷热数据自动分层,平衡业务架构的性能表现和成本支出。
通过 GooseFS-CSI 扩展组件,你可以快速的在容器集群中使用GooseFS。
三、限制条件
·支持 Kubernetes 1.14 以上版本的集群。
·支持 GooseFS 可用地域。
·在 TKE 中使用 GooseFS,需要在集群内安装该扩展组件,将占用一定的系统资源。
四、权限说明
·该组件权限是当前功能实现的最小权限依赖。
·需要挂载主机 /var/lib/kubelet 相关目录到容器来完成 volume 的 mount/umount,因此需要开启特权级容器。
五、权限场景
goosefs-csi-controller
| 功能 | 涉及对象 | 涉及操作权限 |
| 根据 pvc/pv 等信息完成盘的创建和删除。 | nodes/csinodes/storageclasses/volumesnapshots/volumesnapshotcontents | get/watch/list |
| | PersistentVolumeClaim | get/watch/list/update |
| | PersistentVolume | get/watch/list/create/delete |
| 通过 kubernetes lease 机制支持 controller 多副本。 | leases | get/list/watch/create/update/patch/delete |
goosefs-csi-node
| 功能 | 涉及对象 | 涉及操作权限 |
| 启动和删除进行 goosefs fuse 挂载的伴随 pod | pods | create/delete |
六、权限定义
goosefs-csi-controller
kind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata: name: csi-goosefs-controllerrules: – apiGroups: [""] resources: ["persistentvolumes"] verbs: ["get", "list", "watch", "create", "delete"] – apiGroups: [""] resources: ["persistentvolumeclaims"] verbs: ["get", "list", "watch", "update"] – apiGroups: ["storage.k8s.io"] resources: ["storageclasses"] verbs: ["get", "list", "watch"] – apiGroups: [""] resources: ["events"] verbs: ["list", "watch", "create", "update", "patch"] – apiGroups: ["snapshot.storage.k8s.io"] resources: ["volumesnapshots"] verbs: ["get", "list"] – apiGroups: ["snapshot.storage.k8s.io"] resources: ["volumesnapshotcontents"] verbs: ["get", "list"] – apiGroups: ["storage.k8s.io"] resources: ["csinodes"] verbs: ["get", "list", "watch"] – apiGroups: [""] resources: ["nodes"] verbs: ["get", "list", "watch"] – apiGroups: ["coordination.k8s.io"] resources: ["leases"] verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
goosefs-csi-node
kind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata: name: csi-goosefs-noderules: – apiGroups: [""] resources: ["pods"] verbs: ["create", "delete"]
七、安装 GooseFS 扩展组件
1. 登录 容器服务控制台,在左侧导航栏中选择集群。
2. 在集群列表中,单击目标集群 ID,进入集群详情页。
3. 选择左侧菜单栏中的组件管理,在组件管理页面单击新建。
4. 在新建组件管理页面中勾选 GooseFS。
5. 单击完成即可创建组件。
八、使用数据加速器 GooseFS
你可在 TKE 集群中为工作负载挂载数据加速器,详情请参见 使用数据加速器 GooseFS。