文件存储 在容器 TKE 上使用 CFS Turbo

这里说明如何使用 CFS Turbo 对接容器服务(Tencent Kubernetes Engine,TKE)集群。

相关产品
文件存储 产品页,含版本规格、价格与购买入口。

一、前提条件

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,进入集群详情页。在左侧菜单栏单击事件,查看失败原因。

赞 (0)
上一篇 5天前
下一篇 5天前