有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
文档中心 > 文件存储 > 最佳实践 > 在容器 TKE 上使用 CFS Turbo

简介

本文为您介绍如何使用 CFS Turbo 对接容器服务(Tencent Kubernetes Engine,TKE)集群。

前提条件

TKE 的宿主机节点满足 Turbo 系列兼容的操作系统。

操作步骤

部署安装 CSI 组件

进入TKE 集群列表页,并点击所需要使用的 TKE 集群名称。



进入 TKE 容器集群的操作界面后,点击组件管理。在右侧界面中,点击新建





选中 CFS Turbo 组件,点击完成





创建 PV

选择存储 > PersistentVolume,点击新建,创建 PV。当前仅支持静态创建,故选择不指定 storageclass,然后选中要挂载的 CFS Turbo 实例,及对应的目录。




创建 PVC

选择存储 > PersistentVolumeClaim,点击新建,选择不指定 storage class,并选中上一步创建的 PV。




创建 deployment

选择工作负载 > Deployment,在数据卷中添加创建的 PVC。



在挂载点中,填写挂载到的本地路径。




登录容器查看挂载情况

选择工作负载 > Deployment,选择新建出来的 POD,点击远程登录







补充:基于自建容器使用 CFS Turbo

前提条件

容器宿主机节点满足 Turbo 系列兼容的操作系统。

已在所有容器宿主机节点安装 Turbo 的私有客户端,推荐使用 pshell 工具进行批量操作。
相关的操作系统兼容列表及私有客户端安装方式,可参见 在 Linux 客户端上使用 CFS Turbo 文件系统 文档。

配置 kubectl 连接集群

您可参见 TKE连接集群,配置 kubectl,以管理容器集群。

通过 yaml 文件创建挂载 Turbo 的 POD

2. 进入 kubernetes-csi-tencentcloud/deploy/cfsturbo/kubernetes/ 目录,分别将 csi-node-rbac.yaml、csi-node.yaml 和 csidriver-new.yaml 文件上传至 kubectl 管理节点。
3. 进入 kubernetes-csi-tencentcloud/deploy/cfsturbo/examples/ 目录,下载 pv.yaml、pvc.yaml、pod.yaml 这三个示例文件。
4. 根据实际 PV、PVC、POD 的相关属性(如名称、镜像地址等),修改 pv.yaml、pvc.yaml、pod.yaml 文件。 yaml 示例如下:
apiVersion: v1
kind: PersistentVolume
metadata:
name: csi-cfsturbo-pv
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 10Gi
csi:
driver: com.tencent.cloud.csi.cfsturbo
# volumeHandle in PV must be unique, use pv name is better
volumeHandle: csi-cfsturbo-pv
volumeAttributes:
# cfs turbo proto
proto: lustre
# cfs turbo rootdir
rootdir: /cfs
# cfs turbo fsid (not cfs id)
fsid: d3dcc487
# cfs turbo server ip
host: 10.0.1.16
# cfs turbo subPath
path: /
storageClassName: ""
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: csi-cfsturbo-pvc
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
# You can specify the pv name manually or just let kubernetes to bind the pv and pvc.
volumeName: csi-cfsturbo-pv
# cfsturbo only supports static provisioning, the StorageClass name should be empty.
storageClassName: ""
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
k8s-app: csi-cfsturbo-pod
name: csi-cfsturbo-pod
spec:
replicas: 1
selector:
matchLabels:
k8s-app: csi-cfsturbo-pod
template:
metadata:
labels:
k8s-app: csi-cfsturbo-pod
spec:
containers:
- image: nginx
name: csi-cfsturbo-pod
volumeMounts:
- mountPath: /csi-cfsturbo
name: csi-cfsturbo
volumes:
- name: csi-cfsturbo
persistentVolumeClaim:
# Replaced by your pvc name.
claimName: csi-cfsturbo-pvc

以此挂载指令为例:
sudo mount.lustre -o sync,user_xattr 10.0.1.16@tcp0:/d3dcc487/cfs /path/to/mount
关键参数说明如下:
proto:lustre,请保持此参数不要进行修改。
roodir:/cfs,请保持此参数不要进行修改。
fsid:d3dcc487,此处的 fsid 不是 CFSID,需要填写挂载路径里的信息。
host:10.0.1.16,挂载点 IP。
path:可根据实际需要挂载的子目录进行调整,若直接挂载根目录则填写"/"。
5. 在上传脚本文件的目录下,依次执行以下命令。
配置 RBAC、CSI插件。
kubectl apply -f csi-node-rbac.yaml && kubectl apply -f csidriver-new.yaml && kubectl apply -f csi-node.yaml
创建PV、PVC、POD。
kubectl create -f pv.yaml && kubectl create -f pvc.yaml && kubectl create -f pod.yaml
6. 执行以下命令,查看POD状态。
kubectl get pod -n default -o wide
返回如下结果,即表示创建成功:


若状态(STATUS)持续为 ContainerCreating,即表示创建失败。您可在 TKE 控制台的事件中,查看失败原因。