一、前提条件
TKE 的宿主机节点满足 Turbo 系列兼容的操作系统。
二、安装并设置 CFS 扩展组件
1. 进入 TKE 集群列表页,单击目标 TKE 集群 ID,进入集群详情页。
2. 在左侧选择组件管理,在组件页面单击新建。
3. 勾选存储 > CFSTurbo,单击完成即可创建组件。
三、创建 PersistentVolume
1. 进入 TKE 集群列表页,单击使用 CFS 的 TKE 集群 ID,进入集群详情页。
2. 在左侧选择存储,在 PersistentVolume 页面单击新建,配置参数如下:
·来源设置:选择静态创建。
·名称:填写名称。
·Provisioner:选择 文件存储 CFS Turbo。
·读写权限:文件存储 CFS Turbo 仅支持多机读写。
·是否指定 StorageClass:选择不指定,对应 YAML 文件中的 storageClassName 字段取值为空字符串。
·填写 CFS Turbo 子目录。
3. 单击创建 PersistentVolume,即可完成创建。
四、创建 PersistentVolumeClaim
1. 进入 TKE 集群列表页,单击使用 CFS 的 TKE 集群 ID,进入集群详情页。
2. 在左侧选择存储,在 PersistentVolumeClaim 页面单击新建,配置参数如下:
·Provisioner:选择文件存储 CFS Turbo。
·读写权限:文件存储 CFS Turbo 仅支持多机读写。
·是否指定 StorageClass:如果当前集群内没有满足条件的 PV 可选,请选择不指定 StorageClass。
·是否指定 PersistentVolume:选择指定,并关联上一步创建的 PersistentVolume。PersistentVolume 需要与指定的 StorageClass 相同并且状态为 Available 或 Released。
3. 单击创建 PersistentVolumeClaim,即可完成创建。
五、创建工作负载
1. 进入 TKE 集群列表页,单击使用 CFS 的 TKE 集群 ID,进入集群详情页。
2. 在左侧选择工作负载,在 Deployment 页面单击新建。
3. 在新建工作负载页面单击添加数据卷。
4. 在新增数据卷弹窗中,数据卷类型选择使用已有 PVC,并选择上述已创建的 PVC,填写数据卷名称,单击确认。
5. 在实例内容器的挂载点中,单击添加挂载点,选择上方创建的数据卷,设置数据卷挂载到容器中的路径。
六、登录容器查看挂载情况
1. 进入 TKE 集群列表页,单击使用 CFS 的 TKE 集群 ID,进入集群详情页。
2. 在左侧选择工作负载,在 Deployment 页面单击新建的工作负载名称。
3. 进入 Pod 管理页面,在操作栏单击登录。
4. 在容器登录弹窗中,单击 OrcaTerm 登录。登录后执行 df -h 即看到挂载的 CFS 文件系统。
七、容器宿主机节点满足 Turbo 系列兼容的操作系统。
·已在所有容器宿主机节点安装 Turbo 的私有客户端,推荐使用 pshell 工具进行批量操作。
·相关的操作系统兼容列表及私有客户端安装方式,可参见 在 Linux 客户端上使用 CFS Turbo 文件系统 文档。
八、配置 kubectl 连接集群
你可参见 TKE 连接集群,配置 kubectl,以管理容器集群。
九、通过 YAML 文件创建挂载 Turbo 的 Pod
1. 阅读 TKE Turbo 插件的说明文档。
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 文件。
5. YAML 示例如下:
apiVersion: v1kind: PersistentVolumemetadata: name: csi-cfsturbo-pvspec: 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: xxxxxxxx # cfs turbo server ip host: 10.0.1.16 # cfs turbo subPath path: / storageClassName: ""—apiVersion: v1kind: PersistentVolumeClaimmetadata: name: csi-cfsturbo-pvcspec: 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/v1kind: Deploymentmetadata: labels: k8s-app: csi-cfsturbo-pod name: csi-cfsturbo-podspec: 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.xx.xx@tcp0:/xxxxxxxx/cfs /path/to/mount
关键参数说明如下:
·proto:Lustre,请保持此参数不要进行修改。
·rootdir:/cfs,请保持此参数不要进行修改。
·fsid:xxxxxxxx,此处的 fsid 不是 CFSID,需要填写挂载路径里的信息。
·host:10.0.1.16,挂载点 IP。
·path:可根据实际需要挂载的子目录进行调整,若直接挂载根目录则填写"/"。
6. 在上传脚这篇件的目录下,依次执行以下命令。
·配置 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
7. 执行以下命令,查看 Pod 状态。
kubectl get pod -n default -o wide
返回如下结果,即表示创建成功:
若状态(STATUS)持续为 ContainerCreating ,即表示创建失败。你可进入 TKE 集群列表页,单击使用 CFS 的 TKE 集群 ID,进入集群详情页。在左侧菜单栏单击事件,查看失败原因。