详情页标题前

阿里云容器服务ACK块存储限速最佳实践-云淘科技

详情页1

Kubernetes本身不支持对存储介质进行限速,您可以通过容器服务ACK实现对某个Pod进行某个块设备(云盘或LVM本地盘)的限速。本文以云盘为例介绍如何对块存储进行限速。

使用限制

  • 宿主机操作系统必须为Alibaba Cloud Linux 2及以上版本。
  • ACK集群版本不低于1.20。
  • CSI存储组件版本不低于1.22。版本信息,请参见csi-provisioner。

参数说明

  • readIOPS:限制当前Pod对指定块存储每秒读IO的次数。
  • writeIOPS:限制当前Pod对指定块存储每秒写IO的次数。
  • readBPS:限制当前Pod对指定块存储每秒读取的数据量,单位 (KB,MB,GB)。
  • writeBPS:限制当前Pod对指定块存储每秒写入的数据量,单位(KB,MB,GB)。

使用方式

本文以云盘为例说明如何对块存储进行限速。您可以通过动态创建云盘或静态创建云盘的方式使用。

说明 块存储限速设置后,无法变更。

通过动态创建云盘的方式使用

  1. 使用以下内容,创建alicloud-disk-topology-essd.yaml文件。
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: alicloud-disk-topology-essd
    parameters:
      type: cloud_essd
      readIOPS: "100"
      writeIOPS: "10"
      readBPS: "100k"
      writeBPS: "100m"
    provisioner: diskplugin.csi.alibabacloud.com
    reclaimPolicy: Delete
    volumeBindingMode: WaitForFirstConsumer
  2. 执行以下命令,创建StorageClass。
    kubectl apply -f alicloud-disk-topology-essd.yaml
  3. 使用以下内容,创建nginx.yaml文件。该应用引用已创建的StorageClass,即可使用限速云盘。
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: web-csi-encrypt
    spec:
      selector:
        matchLabels:
          app: nginx
      serviceName: "nginx"
      podManagementPolicy: "Parallel"
      replicas: 1
      template:
        metadata:
          labels:
            app: nginx
        spec:
          hostNetwork: true
          containers:
          - name: nginx
            command:
            - sleep
            - "999999999"
            image: nginx
            volumeMounts:
            - name: disk-csi
              mountPath: /data
      volumeClaimTemplates:
      - metadata:
          name: disk-csi
        spec:
          accessModes: [ "ReadWriteOnce" ]
          storageClassName: alicloud-disk-topology-essd
          resources:
            requests:
              storage: 80Gi
  4. 执行以下命令,创建应用。
    kubectl apply -f nginx.yaml
  5. 执行以下命令,查看容器的块设备限制值。
    # 登录宿主机, 根据PodUID来进行路径拼接, 查看值是否被正确设置上。
    readIOPS: /sys/fs/cgroup/blkio/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-pod{pod_uid}.slice/blkio.throttle.read_iops_device
    writeIOPS: /sys/fs/cgroup/blkio/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-pod{pod_uid}.slice/blkio.throttle.write_iops_device
    readBPS: /sys/fs/cgroup/blkio/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-pod{pod_uid}.slice/blkio.throttle.read_bps_device
    writeBPS: /sys/fs/cgroup/blkio/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-pod{pod_uid}.slice/blkio.throttle.write_bps_device

通过静态创建云盘的方式使用

  1. 使用以下内容,创建pv-static.yaml。
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: d-****
    spec:
      accessModes:
      - ReadWriteMany
      capacity:
        storage: 80Gi
      csi:
        driver: diskplugin.csi.alibabacloud.com
        fsType: ext4
        volumeAttributes:
          app: nginx
          type: cloud_ssd
          readBPS: 100K
          readIOPS: "100"
        volumeHandle: d-****
      persistentVolumeReclaimPolicy: Retain
      volumeMode: Filesystem
  2. 执行以下命令,创建PV。
    kubectl apply -f pv-static.yaml
  3. 使用以下内容,创建pvc-static.yaml。
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      labels:
        app: nginx
      name: disk-pvc
      namespace: default
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        requests:
          storage: 80Gi
      volumeMode: Filesystem
      volumeName: d-****
  4. 执行以下命令,创建PVC。
    kubectl apply -f pvc-static.yaml
  5. 使用以下内容,创建nginx.yaml文件。该应用引用已创建的PVC,即可使用限速云盘。
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: deploy-disk
      labels:
        app: nginx
    spec:
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80
            volumeMounts:
            - name: disk-pvc2
              mountPath: /data
          volumes:
            - name: disk-pvc2
              persistentVolumeClaim:
                claimName: disk-pvc
  6. 执行以下命令,创建应用。
    kubectl apply -f nginx.yaml
  7. 执行以下命令,查看容器的块设备限制值。
    # 登录宿主机, 根据PodUID来进行路径拼接, 查看值是否被正确设置上。
    readIOPS: /sys/fs/cgroup/blkio/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-pod{pod_uid}.slice/blkio.throttle.read_iops_device
    writeIOPS: /sys/fs/cgroup/blkio/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-pod{pod_uid}.slice/blkio.throttle.write_iops_device
    readBPS: /sys/fs/cgroup/blkio/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-pod{pod_uid}.slice/blkio.throttle.read_bps_device
    writeBPS: /sys/fs/cgroup/blkio/kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-pod{pod_uid}.slice/blkio.throttle.write_bps_device

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

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

(0)
上一篇 2023年12月10日 上午12:43
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云RDS数据库存储类型-云淘科技

    云数据库RDS提供了以下数据存储类型:ESSD云盘、本地SSD盘、SSD云盘、通用云盘,本文介绍这几种存储类型的区别及选购建议。 存储类型介绍 存储类型 说明 ESSD云盘 增强型SSD云盘(Enhanced SSD云盘,下文简称ESSD云盘),是阿里云全新推出的超高性能云盘产品。ESSD云盘基于新一代分布式块存储架构,结合25GE网络和RDMA技术,为您提…

    2023年12月9日
  • 阿里云RDS数据库升级SSD云盘至ESSD云盘-云淘科技

    相较于SSD云盘,ESSD PL1云盘基于新一代分布式块存储架构,具备更高的IOPS、更高的吞吐量和更稳定的I/O性能,并且在大部分地域中两者费用相同。您可以通过控制台将存储类型从SSD云盘升级到ESSD PL1云盘,享受更高的性价比。 前提条件 实例的状态为运行中。 实例的存储类型为SSD云盘。 云盘性能对比 ESSD PL1云盘和SSD云盘的费用相近但性…

    阿里云数据库 2023年12月9日
  • 对象存储、块存储、文件存储他们都有什么不通的作用?-云小二-阿里云

    都是存储,他们的主要用途在哪里?假如搭建一个网站应该使用哪种存储?假如搭建个人网盘使用什么方式存储? 以下为热心网友提供的参考意见 对象存储、块存储和文件存储是三种不同的数据存储方式,它们各自具有独特的功能和适用场景。 对象存储:主要用于存储非结构化的数据,如图片、视频、音频等。对象存储提供了基于键值对的访问方式,可以轻松地存储大量的非结构化数据,并支持数据…

    2023年12月15日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云ECS云服务器DescribeDiskMonitorData-云淘科技

    查询单个云盘的秒级监控数据。 接口说明 查询结果一次最多返回400条数据,即指定的(EndTime-StartTime)/Period不能超过400。 查询结果一次最多能查询近3天内的监控信息,即StartTime指定的时间与当前时间相差不能超过3天。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,Open…

    阿里云服务器 2023年12月9日
  • 阿里云ECS云服务器变更云盘类型-云淘科技

    阿里云提供多种云盘类型,满足不同场景的存储性能和价格需求,您可以根据业务需求变更云盘的类型。例如,您创建云盘时选择了SSD云盘,但后期需要更高的IOPS,则可以将该盘变配为ESSD云盘。 前提条件 云盘变配前,建议您为云盘创建快照备份数据。具体操作,请参见创建一个云盘快照。 注意事项 变配时,云盘性能可能会发生变化,请避开业务高峰期。不同类型云盘的性能详情,…

    阿里云服务器 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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