tencent cloud

Feedback

Last updated: 2024-02-01 10:05:00

Overview

Add-on description

The Kubernetes-csi-tencentcloud CFS-CSI plug-in allows you to use Tencent Cloud File Storage in your TKE cluster.
Note:
For clusters of version 1.12, you need to modify the kubelet configuration by adding \\--feature-gates=KubeletPluginsWatcher=false\\.

Kubernetes objects deployed in a cluster

Kubernetes Object Name
Type
Default Resource Occupation
Namespace
csi-provisioner-cfsplugin
StatefulSet
-
kube-system
csi-nodeplugin-cfsplugin
DaemonSet
-
kube-system
csi-provisioner-cfsplugin
Service
1C2G
kube-system

Use Cases

Cloud File Storage (CFS) provides a scalable shared file storage service that can be used with Tencent Cloud services such as CVM, TKE, and BatchCompute. CFS offers standard NFS and CIFS/SMB file system access protocols to provide shared data sources for multiple CVM instances or other computing services. It supports elastic capacity expansion and performance scaling. CFS can be mounted on existing applications without modification. As a highly available and reliable distributed file system, CFS is suitable for various scenarios such as big data analysis, media processing, and content management.
CFS is easy to integrate. You do not need to adjust your business structure or make complex configurations. You can integrate and use CFS in three steps: create a file system, launch a file system client on the server, and mount the created file system. With the CFS-CSI add-on, you can quickly use CFS through the standard native Kubernetes in your TKE cluster. For more information, see CFS Usage.

Limits

For the limits of CFS, see CFS System Limits.
To use CFS in TKE, you need to install this add-on in your cluster, which will occupy some system resources.

CFS-CSI Permission

Note:
The Permission Scenarios section only lists the permissions related to the core features of the components, for a complete permission list, please refer to the Permission Definition.

Permission Description

The permission of this component is the minimal dependency required for the current feature to operate.
The related directory /var/lib/kubelet on the host machine needs to be mounted to the container to accomplish volume mount/unmount, hence the activation of the privileged-level container is required.

Permission Scenarios

Feature
Involved Object
Involved Operation Permission
It is required to support the dynamic creation of CFS instances.
persistentvolumeclaims/persistentvolumes
All operations
storageclasses
get/list/watch
Supporting the cfs instance under the shared pattern
tcfs
get/list/watch/create/update/delete/patch
deployment
get/list/watch/create/update/delete
node
get/list

Permission Definition

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: csi-cfs-controller-role
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["services", "events", "configmaps", "endpoints"]
verbs: ["get","list","create","update","patch","delete"]
- apiGroups: [""]
resources: ["services/status", "events/status"]
verbs: ["get"]
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete", "update"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch", "update", "patch", "create"]
- apiGroups: ["storage.k8s.io"]
resources: ["volumeattachments", "volumeattachments/status"]
verbs: ["get", "list", "watch", "update", "patch"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get", "list", "watch"]
- apiGroups: ["extensions"]
resources: ["ingresses"]
verbs: ["get", "list", "watch", "update", "patch", "create"]
- apiGroups: ["extensions"]
resources: ["ingresses/status"]
verbs: ["get"]
- apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["get", "list", "delete", "update", "create", "watch"]
- apiGroups: ["apps"]
resources: ["deployments/status"]
verbs: ["get"]
- apiGroups: ["tcfsoperator.k8s.io"]
resources: ["tcfs", "tcfs/status"]
verbs: ["get", "list", "watch", "create", "delete", "update", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: tcfs-subdir-external-provisioner-runner
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list", "watch"]
- 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: ["create", "update", "patch"]

Directions

Installing and setting the CFS add-on

1. Log in to the TKE Console and select Cluster in the left sidebar.
2. On the "Cluster Management" page, click the ID of the target cluster to go to the cluster details page.
3. In the left sidebar, click Add-on Management to go to the "Add-on List" page.
4. On the "Add-on List" page, click Create. On the displayed "Create an Add-on" page, select CFS.
5. Click Finish to create the add-on.

Creating a CFS-type StorageClass

1. On the "Cluster Management" page, click the ID of the cluster that uses CFS to go to the cluster details page.
2. In the left sidebar, choose Storage > StorageClass and click Create to go to the "Create a StorageClass" page.
3. Create a CFS-type StorageClass based on your actual requirements, as shown in the figure below:


4. Click Create a StorageClass to complete the creation.

Creating a PersistentVolumeClaim

1. On the "Cluster Management" page, click the ID of the cluster that uses CFS to go to the cluster details page.
2. In the left sidebar, choose Storage > PersistentVolumeClaim and click Create to go to the "Create a PersistentVolumeClaim" page.
3. Create a CFS-type PersistentVolumeClaim based on your actual requirements and select the StorageClass created above.
4. Click Create a PersistentVolumeClaim to complete the creation process.

Creating a workload

1. On the "Cluster Management" page, click the ID of the cluster that uses CFS to go to the cluster details page.
2. In the left sidebar, choose Workload > Deployment and click Create to go to the "Create a Workload" page.
3. Based on your actual requirements, select Use an existing PVC for volumes and select the PVC created above.
4. Mount the PVC to the specified container path and click Create a Workload to complete the creation process.
Contact Us

Contact our sales team or business advisors to help your business.

Technical Support

Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

7x24 Phone Support