详情页标题前

阿里云容器服务ACK使用云盘静态存储卷-云淘科技

详情页1

云盘是阿里云为云服务器ECS提供的数据块级别的块存储产品,具有低时延、高性能、持久性、高可靠等特点。集群支持使用CSI插件创建云盘静态存储卷和动态存储卷。本文介绍如何在CSI插件中挂载云盘静态存储卷及使用云盘静态存储卷如何实现持久化存储

前提条件

  • 已创建集群,并且在该集群中安装CSI插件。具体操作,请参见创建Kubernetes托管版集群、创建ACK Serverless集群。

  • 已创建按量付费的云盘并记录云盘ID为d-wz92s6d95go6ki9x****。具体操作,请参见创建云盘。

    说明

    申请云盘时,请遵循如下容量限制:

    • 高效云盘:最小20 GiB。

    • SSD云盘:最小20 GiB。

    • ESSD云盘:最小20 GiB。

  • 已通过Kubectl连接Kubernetes集群。具体操作,请参见通过kubectl工具连接集群。

背景信息

云盘的使用场景包括:

  • 对磁盘I/O要求高的应用,且没有共享数据的需求,如MySQL、Redis等数据存储服务。

  • 高速写日志。

  • 持久化存储数据,不会因Pod生命周期的结束而消失。

静态云盘的使用场景:已经购买了云盘实例的情况。

静态云盘使用方式:需手动创建PV及PVC。

使用限制

  • 云盘为阿里云存储团队提供的非共享存储,只能同时被一个Pod挂载。如需共享存储,可使用NAS存储卷。更多信息,请参见NAS存储卷概述。

  • 集群中只有与云盘在同一个可用区(Zone)的节点才可以挂载云盘。

通过控制台的方式使用云盘静态存储卷

步骤一:创建PV

  1. 登录容器服务管理控制台。

  2. 在控制台左侧导航栏,单击集群

  3. 集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情

  4. 在集群管理页左侧导航栏,选择存储 > 存储卷

  5. 存储卷页面,单击右上角的创建

  6. 创建存储卷对话框中配置参数。

    参数

    描述

    存储卷类型

    本文中选择为云盘。

    • ACK集群:支持云盘、NAS、OSS云存储类型。

    • ACK Serverless集群:支持云盘、NAS云存储类型。

    存储驱动

    支持Flexvolume和CSI。本文中选择为CSI。

    访问模式

    默认为ReadWriteOnce。

    云盘ID

    您可以选择与集群属于相同地域和可用区下处于待挂载状态的云盘。

    文件系统类型

    您可以选择以什么数据类型将数据存储到云盘上,支持的类型包括ext4ext3xfsvfat。默认为ext4

    标签

    为该数据卷添加标签。

  7. 参数配置完成后,单击创建

步骤二:创建PVC

  1. 在集群管理页左侧导航栏,选择存储 > 存储声明

  2. 存储声明页面,单击右上角的创建

  3. 创建存储声明对话框中,配置参数。

    参数

    描述

    存储声明类型

    本文中选择为云盘。

    • ACK集群:支持云盘、NAS、OSS云存储类型。

    • ACK Serverless集群:支持云盘、NAS云存储类型。

    名称

    创建的数据卷的名称,数据卷名在命名空间内必须唯一。

    分配模式

    本文中选择已有存储卷。

    说明

    若未创建存储卷,您可以设置分配模式创建存储卷,配置创建存储卷参数。具体操作,请参见创建PV。

    已有存储卷

    单击已有存储卷,在目标存储卷右侧操作列单击选择,选择存储卷。

    总量

    所创建存储卷的容量。

    说明

    所创建的存储卷容量不能超过云盘容量。

    访问模式

    默认为ReadWriteOnce。

  4. 单击创建

    创建成功后可以在列表中看到存储声明,并且已绑定相应的存储卷。

步骤三:创建应用

  1. 在集群管理页左侧导航栏,选择工作负载 > 有状态

  2. 有状态页面,单击使用镜像创建

  3. 配置创建应用的参数信息。

    以下主要为您介绍数据卷的配置。关于其他参数的描述,请参见创建有状态工作负载StatefulSet。

    ACK数据卷支持配置本地存储和云存储,本示例需要配置云存储类型。

    本例中配置了一个云盘类型的数据卷,将该云盘挂载到容器中/tmp路径下,在该路径下生成的容器数据会存储到云盘中。

    阿里云容器服务ACK使用云盘静态存储卷-云淘科技
  4. 所有的信息都配置完成后,单击创建

    创建成功后,您就可以正常使用数据卷。

通过kubectl命令行的方式使用云盘静态存储卷

步骤一:创建PV

  1. 使用以下内容,创建pv-static.yaml文件。

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: csi-pv
      labels:
        alicloud-pvname: static-disk-pv
    spec:
      capacity:
        storage: 25Gi
      accessModes:
        - ReadWriteOnce
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: diskplugin.csi.alibabacloud.com
        volumeHandle: ""
      nodeAffinity:
        required:
          nodeSelectorTerms:
          - matchExpressions:
            - key: topology.diskplugin.csi.alibabacloud.com/zone
              operator: In
              values:
              - ""   # 替换为您待部署应用的节点所在的可用区,例如"cn-beijing-b"。

    参数

    说明

    name

    PV的名称。

    labels

    设置PV的标签。

    storage

    云盘的可使用量。

    accessModes

    设置访问模式。

    persistentVolumeReclaimPolicy

    PV的回收策略。

    driver

    定义驱动类型。取值为diskplugin.csi.alibabacloud.com,表示使用阿里云云盘CSI插件。

    volumeHandle

    定义云盘ID。

    nodeAffinity

    定义PV和PVC所属的区域信息。

    通过定义该参数,可以将PV和PVC所在的Pod调度到对应的区域上。

  2. 执行以下命令,创建PV。

    kubectl create -f pv-static.yaml
  3. 查看创建的PV。

    1. 登录容器服务管理控制台。

    2. 在控制台左侧导航栏,单击集群

    3. 集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情

    4. 在集群管理页左侧导航栏选择存储 > 存储卷

      存储卷页面可查看创建的PV。

步骤二:创建PVC

  1. 使用以下内容,创建pvc-static.yaml文件。

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: csi-pvc
    spec:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 25Gi
      selector:
        matchLabels:
          alicloud-pvname: static-disk-pv

    参数

    说明

    name

    PVC的名称。

    accessModes

    设置访问模式。

    storage

    声明应用使用量,不能大于存储卷的总量。

    matchLabels

    通过标签关联PV,与PV标签保存一致。

  2. 执行以下命令,创建PVC。

    kubectl create -f pvc-static.yaml
  3. 在集群管理页左侧导航栏选择存储 > 存储声明

    存储声明页面可看到创建的PVC。

步骤三:创建应用

本文以Web应用为例,在应用中挂载PVC。

  1. 使用以下内容,创建web.yaml文件。

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: web
    spec:
      selector:
        matchLabels:
          app: nginx
      serviceName: "nginx"
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            ports:
            - containerPort: 80
              name: web
            volumeMounts:
            - name: pvc-disk
              mountPath: /data
          volumes:
            - name: pvc-disk
              persistentVolumeClaim:
                claimName: csi-pvc
    • mountPath:云盘在容器中挂载的位置。

    • claimName:PVC的名称,用于绑定PVC。

  2. 执行以下命令,创建一个挂载了云盘静态存储卷的应用并挂载PVC。

    kubectl apply -f web.yaml
  3. 在集群管理页左侧导航栏选择工作负载 > 有状态

    有状态页面可看到创建的Web应用。

验证静态云盘的持久化存储

  1. 查看部署Web应用的Pod和云盘文件。

    1. 执行以下命令,查看部署的Web应用所在Pod的名称。

      kubectl get pod | grep web

      预期输出:

      web-1**** 1/1 Running 0 32s
    2. 执行以下命令,查看/data路径下是否挂载了新的云盘。

      kubectl exec web-1**** -- df | grep data

      预期输出:

      /dev/vdf 20511312 45080 20449848 1% /data
    3. 执行以下命令,查看/data路径下的文件。

      kubectl exec web-1**** -- ls /data

      预期输出:

      lost+found
  2. 执行以下命令,在/data路径下创建文件static。

    kubectl exec web-1**** -- touch /data/static
  3. 执行以下命令,查看/data路径下的文件。

     kubectl exec web-1**** -- ls /data

    预期输出:

    lost+found
    static
  4. 执行以下命令,删除名称为web-1****的Pod。

    kubectl delete pod web-1****

    预期输出:

    pod "web-1****" deleted
  5. 验证删除Pod后,云盘里创建的文件是否还存在。

    1. 执行以下命令,查看重建的Pod名称。

      kubectl get pod

      预期输出:

      NAME       READY   STATUS    RESTARTS    AGE 
      web-2****  1/1     Running   0           14s
    2. 执行以下命令,查看/data路径下的文件。

      kubectl exec web-2**** -- ls /data

      预期输出:

      lost+found
      static

      static文件仍然存在,则说明静态云盘的数据可持久化保存。

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

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

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

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

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

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

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

相关推荐

  • 阿里云日志服务SLS创建并使用K8s事件中心-云淘科技

    K8s事件中心记录了集群的状态变更,包括创建Pod、运行Pod、删除Pod、组件异常等。K8s事件中心实时汇聚Kubernetes集群中的所有事件并提供存储、查询、分析、可视化、告警等能力。本文介绍创建及使用K8s事件中心的操作步骤。 前提条件 已创建Kubernetes集群(例如阿里云ACK集群、ACK Serverless集群等)。 费用说明 K8s事件…

    2023年12月10日
  • 阿里云容器服务ACK使用云盘动态存储卷-云淘科技

    云盘是阿里云为云服务器ECS提供的数据块级别的块存储产品,具有低时延、高性能、持久性、高可靠等特点。ACK Serverless支持使用CSI插件创建云盘动态存储卷。本文介绍如何使用云盘动态存储卷,及如何验证云盘动态存储卷的持久化存储特性。 前提条件 已创建ACK Serverless集群。具体操作,请参见创建ACK Serverless集群。 已通过kub…

    阿里云容器服务 2023年12月10日
  • 阿里云容器服务ACK使用云盘动态存储卷-云淘科技

    云盘是阿里云为云服务器ECS提供的数据块级别的块存储产品,具有低时延、高性能、持久性、高可靠等特点。ACK Serverless支持使用CSI插件创建云盘动态存储卷。本文介绍如何使用云盘动态存储卷,及如何验证云盘动态存储卷的持久化存储特性。 前提条件 已创建ACK Serverless集群。具体操作,请参见创建ACK Serverless集群。 已通过kub…

    阿里云容器服务 2023年12月10日
  • 阿里云容器服务ACK什么是容器服务 Kubernetes 版-云淘科技

    阿里云容器服务 Kubernetes 版 ACK(Container Service for Kubernetes)是全球首批通过Kubernetes一致性认证的容器服务平台,提供高性能的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理,让您轻松高效地在云端运行Kubernetes容器化应用。 产品形态 托管和专有容器服务 Kuber…

    2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云容器服务ACKKubernetes版本概览及机制-云淘科技

    容器服务ACK基于原生的Kubernetes提供以容器为核心的解决方案。随着Kubernetes版本不断升级,容器服务ACK会定期发布支持的Kubernetes版本并逐步停止对过期版本的技术支持。本文为您介绍容器服务 ACK的Kubernetes版本支持机制,包括版本周期、支持策略、过期风险等。 版本发布 ACK集群和ACK Serverless集群支持的K…

    阿里云容器服务 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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