详情页标题前

腾讯云容器服务TKE 挂载 CFS-Turbo同尘科技

详情页1

操作场景

为 TKE 集群挂载 CFS Turbo 类型存储,可以通过安装 kubernetes-csi-tencentloud 组件来实现。该组件基于私有协议将腾讯云 CFS Turbo 文件系统挂载到工作负载,目前仅支持静态配置。CFS 存储类型请参考 文件存储类型及性能规格。

前提条件

已创建 TKE 集群或已在腾讯云自建 Kubernetes 集群,集群版本 >=1.14。

操作步骤

创建文件系统

创建 CFS Turbo 文件系统,具体操作请参见 创建文件系统。 注意文件系统创建后,需将集群网络(vpc-xx)关联到文件系统的 云联网(可在文件系统挂载点信息中查看)。

部署 RBAC 策略

如果您需要挂载 CFS Turbo 存储卷,需执行 kubectl apply -f csi-node-rbac.yaml 命令在集群中先部署 RBAC 策略,csi-node-rbac.yaml 代码参考如下:

apiVersion: v1kind: ServiceAccountmetadata:  name: cfsturbo-csi-node-sa  namespace: kube-system---kind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata:  name: cfsturbo-csi-node-rolerules:  - apiGroups: [""]    resources: ["persistentvolumes", "endpoints", "configmaps"]    verbs: ["get", "list", "watch", "create", "delete", "update"]  - apiGroups: [""]    resources: ["persistentvolumeclaims", "nodes"]    verbs: ["get", "list", "watch", "update"]  - apiGroups: [""]    resources: ["events"]    verbs: ["get", "list", "watch", "create", "update", "patch"]  - apiGroups: [""]    resources: ["secrets", "namespaces"]    verbs: ["get", "list"]  - apiGroups: [""]    resources: ["nodes", "pods"]    verbs: ["get", "list", "watch", "update"]  - apiGroups: ["storage.k8s.io"]    resources: ["volumeattachments", "volumeattachments"]    verbs: ["get", "list", "watch", "update", "patch"]  - apiGroups: ["storage.k8s.io"]    resources: ["storageclasses"]    verbs: ["get", "list", "watch"]---kind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata:  name: cfsturbo-csi-node-rolebindingsubjects:  - kind: ServiceAccount    name: cfsturbo-csi-node-sa    namespace: kube-systemroleRef:  kind: ClusterRole  name: cfsturbo-csi-node-role  apiGroup: rbac.authorization.k8s.io

部署 Node Plugin

1. 执行 kubectl apply -f csidriver.yaml 命令,csidriver.yaml 代码参考如下:

apiVersion: storage.k8s.io/v1beta1kind: CSIDrivermetadata:  name: com.tencent.cloud.csi.cfsturbospec:  attachRequired: false  podInfoOnMount: false

2. 执行 kubectl apply -f csi-node.yaml 命令,csi-node.yaml 代码参考如下:

# This YAML file contains driver-registrar & csi driver nodeplugin API objects# that are necessary to run CSI nodeplugin for cfsturbokind: DaemonSetapiVersion: apps/v1metadata:  name: cfsturbo-csi-node  namespace: kube-systemspec:  selector:matchLabels:  app: cfsturbo-csi-node  template:metadata:  labels:    app: cfsturbo-csi-nodespec:  serviceAccount: cfsturbo-csi-node-sa  hostNetwork: true  containers:    - name: driver-registrar      image: ccr.ccs.tencentyun.com/tkeimages/csi-node-driver-registrar:v1.2.0      lifecycle:        preStop:          exec:            command: ["/bin/sh", "-c", "rm -rf /registration/com.tencent.cloud.csi.cfsturbo /registration/com.tencent.cloud.csi.cfsturbo-reg.sock"]      args:        - "--v=5"        - "--csi-address=/plugin/csi.sock"        - "--kubelet-registration-path=/var/lib/kubelet/plugins/com.tencent.cloud.csi.cfsturbo/csi.sock"      env:        - name: KUBE_NODE_NAME          valueFrom:            fieldRef:              fieldPath: spec.nodeName      volumeMounts:        - name: plugin-dir          mountPath: /plugin        - name: registration-dir          mountPath: /registration    - name: cfsturbo      securityContext:        privileged: true        capabilities:          add: ["SYS_ADMIN"]        allowPrivilegeEscalation: true      image: ccr.ccs.tencentyun.com/tkeimages/csi-tencentcloud-cfsturbo:v1.2.2      args :        - "--nodeID=$(NODE_ID)"        - "--endpoint=$(CSI_ENDPOINT)"      env:        - name: NODE_ID          valueFrom:            fieldRef:              fieldPath: spec.nodeName        - name: CSI_ENDPOINT          value: unix://plugin/csi.sock      imagePullPolicy: "IfNotPresent"      volumeMounts:        - name: plugin-dir          mountPath: /plugin        - name: pods-mount-dir          mountPath: /var/lib/kubelet/pods          mountPropagation: "Bidirectional"        - name: global-mount-dir          mountPath: /etc/cfsturbo/global          mountPropagation: "Bidirectional"  volumes:    - name: plugin-dir      hostPath:        path: /var/lib/kubelet/plugins/com.tencent.cloud.csi.cfsturbo        type: DirectoryOrCreate    - name: pods-mount-dir      hostPath:        path: /var/lib/kubelet/pods        type: Directory    - name: registration-dir      hostPath:        path: /var/lib/kubelet/plugins_registry        type: Directory    - name: global-mount-dir      hostPath:        path: /etc/cfsturbo/global        type: DirectoryOrCreate

使用 CFS Turbo 存储卷

1. 创建 CFS Turbo 文件系统,具体操作请参见 创建文件系统。 2. 使用以下模板创建 CFS Turbo 类型的 PV。

apiVersion: v1kind: PersistentVolumemetadata:  name: pv-cfsturbospec:  accessModes:  - ReadWriteMany  capacity:    storage: 10Gi  csi:    driver: com.tencent.cloud.csi.cfsturbo      # volumeHandle in PV must be unique, use pv name is better    volumeHandle: pv-cfsturbo    volumeAttributes:       # cfs turbo server ip      host: 10.0.0.116      # cfs turbo fsid (not cfs id)      fsid: xxxxxxxx      # cfs turbo rootdir      rootdir: /cfs      # cfs turbo subPath      path: /      proto: lustre  storageClassName: ""

参数说明: metadata.name: 创建 PV 名称。 spec.csi.volumeHandle: 与 PV 名称保持一致。 spec.csi.volumeAttributes.host: 文件系统 ip 地址,可在文件系统挂载点信息中查看。 spec.csi.volumeAttributes.fsid: 文件系统 fsid(非文件系统 id),可在文件系统挂载点信息中查看(挂载命令中 “tcp0:/” 之后 “/cfs” 之前的那一段字符串,如下图)。spec.csi.volumeAttributes.rootdir: 文件系统根目录,不填写默认为 “/cfs”(挂载到 “/cfs” 目录可相对提高整体挂载性能)。如需指定根目录挂载,须确保该根目录在文件系统中存在。spec.csi.volumeAttributes.path: 文件系统子目录,不填写默认为 “/”。如需指定子目录挂载,须确保该子目录在文件系统 rootdir 中存在。容器最终访问到的是文件系统中 rootdir+path 目录(默认为 “/cfs/” 目录)。spec.csi.volumeAttributes.proto:文件系统默认挂载协议。

腾讯云容器服务TKE 挂载 CFS-Turbo同尘科技


注意使用 lustre 协议挂载 CFS Turbo 卷需预先在集群节点内根据操作系统内核版本安装对应客户端,详情请参考 在 Linux 客户端上使用 CFS Turbo 文件系统;3. 使用以下模板创建 PVC 绑定 PV。

apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: pvc-cfsturbospec:  storageClassName: ""  volumeName: pv-cfsturbo  accessModes:  - ReadWriteMany  resources:    requests:      storage: 10Gi

参数说明: metadata.name: 创建 PVC 名称。 spec.volumeName: 与上一步中创建 PV 名称保持一致。4. 使用以下模板创建 Pod 挂载 PVC。

apiVersion: v1kind: Podmetadata:  name: nginx spec:  containers:  - image: ccr.ccs.tencentyun.com/qcloud/nginx:1.9    imagePullPolicy: Always    name: nginx    ports:    - containerPort: 80      protocol: TCP    volumeMounts:      - mountPath: /var/www        name: data  volumes:  - name: data    persistentVolumeClaim:      claimName: pvc-cfsturbo



容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/148721.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云对象存储提交任务

    功能描述 提交一个画质增强任务。 请求 请求示例 POST /jobs HTTP/1.1Host: <BucketName-APPID>.ci.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>Content-Length: &l…

    腾讯云 2023年12月9日
  • 阿里云对象存储OSS计费概述-云淘科技

    通过阅读本文,你可以快速了解对象存储OSS的付费方式、计费组成、定价等主要计费信息。 计费方式 对象存储OSS支持以下计费方式。 按量付费:所有计费项默认采用按量付费。按照各计费项的实际用量结算费用,先使用,后付费,适用于业务用量经常有变化的场景。更多信息,请参见按量付费。 资源包:针对部分常用计费项支持专用的资源包。预先购买针对不同的计费项推出的优惠资源包…

    阿里云对象存储 2023年12月10日
  • 腾讯云专用宿主机搜索 CDH 实例

    您可以使用控制台或 API 接口搜索专用宿主机实例,目前控制台支持根据专用宿主机 ID 和名称进行搜索,API 则支持按照可用区、项目、专用宿主机 ID、名称、状态进行搜索。 使用控制台搜索 CDH 实例 1. 登录 专用宿主机控制台。2. 选择相应的地域,在右上角的搜索框中输入宿主机 ID 或名称,单击搜索按钮进行搜索。n  使用 API 搜索 CDH…

    2023年12月9日
  • 腾讯云云函数(SCF)电子商务行业案例-云淘科技

    客户介绍 某电子商务企业,核心宗旨是购物与社区的相互结合,为更多消费者提供更有效的购物决策建议。 客户痛点 该企业上每天有几百万用户在线交流时尚、购物的话题,这些行为会产生大量数据,当这些数据源产生数据后,需要有一个组件获取数据源的数据,并将数据写到 Kafka。研发团队以往的解决办法,一是通过 Logstash、Filebeat 等开源的数据存储方案处理,…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云TDSQL-C MySQL版整集群恢复:按备份集

    若要恢复的时间点不确定,可以按照备份集进行集群恢复,这种方式可以将集群恢复到某个特定的状态,且恢复速度较快。 前提条件 备份列表由数据备份文件和日志备份文件产生,自动备份设置请参见 自动备份。集群状态处于运行中。 注意事项 新克隆的集群在克隆成功后会开始进行计费,计费介绍与费用详情请参见 计费概述。克隆成功后,如需将业务切到新集群上,需注意新集群的 VIP …

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。