详情页标题前

阿里云容器服务ACK使用文件系统一致性快照-云淘科技

详情页1

在业务系统跨多块云盘的场景下,您可以通过创建文件系统一致性快照,为业务中挂载的多块云盘同时创建快照,保证数据写入云盘的时序一致性,并保持其崩溃一致性。本文介绍文件系统一致性快照的使用方法。

前提条件

  • ACK发布的Kubernetes v1.18及之上版本默认提供了存储快照的功能,因此使用云盘存储快照时,请确保您创建的ACK集群Kubernetes版本等于或大于v1.18。具体操作,请参见创建Kubernetes托管版集群。
  • 访问指定地域的ECS控制台,确认已开启云盘快照服务。具体操作,请参见开通快照。

操作步骤

本文以nginx应用为例,介绍文件系统一致性快照的使用。

重要 创建文件系统一致性快照过程中会冻结云盘的文件系统,但不影响业务的正常运行。

  1. 部署应用。
    1. 使用以下内容,创建nginx-deploy.yaml文件。
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: essd-pvc-0
        labels:
          app: nginx #创建一致性快照组时PVC的选择依据。
      spec:
        accessModes:
        - ReadWriteOnce
        volumeMode: Filesystem
        resources:
          requests:
            storage: 25Gi
        storageClassName: alicloud-disk-essd  #默认创建的ESSD存储类。
      ---
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: essd-pvc-1
        labels:
          app: nginx   #创建一致性快照组时PVC的选择依据。
      spec:
        accessModes:
        - ReadWriteOnce
        volumeMode: Filesystem
        resources:
          requests:
            storage: 25Gi
        storageClassName: alicloud-disk-essd
      ---
      apiVersion: apps/v1
      kind: StatefulSet
      metadata:
        name: nginx
      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: essd-0
                mountPath: /data/essd0
              - name: essd-1
                mountPath: /data/essd1
            volumes:
              - name: essd-0
                persistentVolumeClaim:
                  claimName: essd-pvc-0
              - name: essd-1
                persistentVolumeClaim:
                  claimName: essd-pvc-1
                                      
    2. 执行以下命令,部署nginx有状态应用,并挂载两个云盘。
      kubectl apply -f nginx-deploy.yaml
  2. 创建pre-rule和post-rule。Rule用于定义创建的一致性快照的类型。若类型为应用一致性快照,Rule还将定义应用的冻结与解冻指令。
    1. 使用以下内容,创建rule.yaml文件。
      apiVersion: storage.alibabacloud.com/v1beta1
      kind: Rule
      metadata:
        name: post-rule
      spec:
        containerName: "csi-plugin"
        ruleType: filesystem_consistent
        rules:
          - actionType: command
            action: ""
      ---
      apiVersion: storage.alibabacloud.com/v1beta1
      kind: Rule
      metadata:
        name: pre-rule
      spec:
        containerName: "csi-plugin"
        ruleType: filesystem_consistent
        rules:
          - actionType: command
            action: ""
      参数 说明
      ruleType

      一致性快照的类型,包含文件系统一致性快照和应用一致性快照。

      • filesystem_consistent:表示使用文件系统一致性快照。
      • app_consistent:表示使用应用一致性快照。
      rules. actionType

      ruleType=app_consistent时,该参数生效。

      action的类型,目前仅支持command。当值为command时,执行action中的指令。

      rules. action

      ruleType=app_consistent时,该参数生效。

      • pre-rule中:表示一致性快照创建前执行的应用冻结指令。
      • post-rule中:表示一致性快照创建后执行的应用恢复指令。
      containerName

      ruleType=app_consistent时,该参数生效。

      Rules的执行容器。

      重要 文件系统一致性快照与应用一致性快照使用kube-system命名空间下的csi-plugin组件,将自动完成文件系统的冻结与解冻操作。

    2. 执行以下命令,创建pre-rule及post-rule。
      kubectl apply -f rule.yaml
  3. 创建文件系统一致性快照。
    1. 使用以下内容,创建advanced-snapshot.yaml文件。
      apiVersion: storage.alibabacloud.com/v1beta1kind: AdvancedVolumeSnapshotmetadata:  name: advanced-snapshot  namespace: defaultspec:  pvcSelector:    matchLabels: #当nameList字段不存在时生效。      app: "nginx"    #nameList: ["essd-pvc-0", "essd-pvc-1"]  hook:    preRule: "pre-rule"    postRule: "post-rule"  retentionDays: "1"  reclaimPolicy: Delete    targetRegions: ["cn-hanzghou"] #本文示例在cn-beijing本地域创建的文件系统一致性快照,拷贝到cn-hangzhou地域。
      参数说明
      pvcSelector. matchLabels

      可选,目标PVC需要满足的标签。

      pvcSelector. nameList

      可选,目标PVC的名称。

      说明 若matchLabels与nameList同时存在,则只考虑nameList。

      hook

      可选,一致性快照关联的Rule。

      该值为空时,将为每个目标PVC单独创建非一致性的快照。

      hook. preRule

      一致性快照创建前执行的Rule。

      选择集群中已存在的Rule作为pre-rule

      hook. postRule

      一致性快照创建后执行的Rule。

      选择集群中已存在的Rule作为post-rule

      retentionDays

      可选,创建的一致性快照的保留时间,默认为1天。

      reclaimPolicy

      可选,快照的回收机制,默认为Delete

      • Delete:删除整组AdvancedVolumeSnapshot或单个VolumeSnapshot时,对应的VolumeSnapshotContent及关联的快照会被同时删除。
      • Retain:删除整组AdvancedVolumeSnapshot或单个VolumeSnapshot时,对应的VolumeSnapshotContent及关联的快照不会被同时删除。
    2. 执行以下命令,创建文件系统一致性快照。
      kubectl apply -f advanced-snapshot.yaml
  4. 执行以下命令,查询文件系统一致性快照的创建状态及为各个云盘生成的SnapshotID。
    kubectl describe advancedvolumesnapshot advanced-snapshot

    预期输出的Status部分示例如下:

    Status:
      Group Snapshot ID:
      Group Volume Snapshot Status:  done
      Snapshot Status:
        Disk ID:      d-2zee3khhqsnfql******
        Message:
        Pvc Name:     essd-pvc-0
        Region ID:
        Snapshot ID:  s-2ze0wl2fd6337w******
        Status:       accomplished
        Disk ID:      d-2ze9b1j3v4w6pz******
        Message:
        Pvc Name:     essd-pvc-1
        Region ID:
        Snapshot ID:  s-2zeg9tk9plor4w******
        Status:       accomplished
        Disk ID:      d-2zee3khhqsnfql******
        Message:
        Pvc Name:     essd-pvc-0
        Region ID:    cn-hangzhou
        Snapshot ID:  s-bp1izimv6vjlyr******
        Status:       accomplished
        Disk ID:      d-2ze9b1j3v4w6pz******
        Message:
        Pvc Name:     essd-pvc-1
        Region ID:    cn-hangzhou
        Snapshot ID:  s-bp1hu9p9m3hfaq******
        Status:       accomplished

    其中,Region ID为空的快照,说明是在本地域创建的文件系统一致性快照;Region ID为cn-hangzhou的快照,说明是从本地域拷贝到targetRegions的文件系统一致性快照。

  5. 执行以下命令,确认集群中已创建关联的volumeSnapshot资源。
    kubectl get volumesnapshot

    预期输出:

    NAME                                                READYTOUSE   SOURCEPVC              SOURCESNAPSHOTCONTENT    RESTORESIZE   SNAPSHOTCLASS        SNAPSHOTCONTENT                                    CREATIONTIME   AGE
    s-2ze0wl2fd6337w******                              true                                s-2ze0wl2fd6337w******   25Gi                               s-2ze0wl2fd6337w******                             9m50s          8m45s
    s-2zeg9tk9plor4w******                              true                                s-2zeg9tk9plor4w******   25Gi                               s-2zeg9tk9plor4w******                             9m47s          8m45s
    s-bp1hu9p9m3hfaq******                              true                                s-bp1hu9p9m3hfaq******   0                                  s-bp1hu9p9m3hfaq******                             52y            6m35s
    s-bp1izimv6vjlyr******                              true                                s-bp1izimv6vjlyr******   0                                  s-bp1izimv6vjlyr******                             52y            6m36s

    Region ID为cn-hangzhou的快照在本集群中已创建volumeSnapshot资源,但由于地域不同,所以restoresize显示为0。

    可在ECS控制台左侧导航栏中单击存储与快照,查看不同地域的快照。说明 您通过跨地域拷贝的文件系统一致性快照会一直保留,如不需要,可手动删除。

  6. 将已有的文件系统一致性快照导入到使用快照恢复应用的目标集群中,恢复应用。可通过创建volumeSnapshot和volumeSnapshotContent的方式跨集群恢复应用。在本集群恢复应用时,可直接使用已有的volumeSnapshot和volumeSnapshotContent。具体操作,请参见静态创建快照。

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

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

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

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

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

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

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

相关推荐

  • 阿里云容器服务ACK使用文件系统一致性快照-云淘科技

    在业务系统跨多块云盘的场景下,您可以通过创建文件系统一致性快照,为业务中挂载的多块云盘同时创建快照,保证数据写入云盘的时序一致性,并保持其崩溃一致性。本文介绍文件系统一致性快照的使用方法。 前提条件 ACK发布的Kubernetes v1.18及之上版本默认提供了存储快照的功能,因此使用云盘存储快照时,请确保您创建的ACK集群Kubernetes版本等于或大…

    阿里云容器服务 2023年12月10日
  • 阿里云RDS数据库高频快照备份-云淘科技

    RDS PostgreSQL提供高频快照备份功能。您可按需设置每15分钟~12小时备份一次,提高备份频率。 前提条件 实例存储类型为RDS PostgreSQL ESSD云盘版(不支持Serverless实例)。 若您初次使用RDS备份服务,您需要使用阿里云主账号完成DBS服务关联角色(AliyunServiceRoleForDBS)授权。具体操作,请参见如…

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

    当块存储的数据洞察监控到云盘性能数据达到性能上限或者云盘没有创建快照备份数据时,系统会推送事件通知,提醒您及时进行操作处理,以确保云盘存储数据的安全。本文为您介绍如何查看并处理上报的数据安全事件和性能事件。 前提条件 您已开启云盘数据采集功能。具体操作,请参见开启云盘性能的秒级监控。 云盘数据保护 如果云盘未创建快照备份数据,系统会在数据洞察的风险事件列表推…

    阿里云服务器 2023年12月9日
  • 阿里云ECS云服务器CopySnapshot-云淘科技

    调用CopySnapshot将一份普通快照或加密快照从一个地域复制到另一个地域。 接口说明 调用该接口时,您需要注意: 复制后的新快照不能回滚源快照对应的云盘。 不支持复制本地快照。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 请求参数 名称 …

    阿里云服务器 2023年12月9日
  • 阿里云ECS云服务器计费FAQ-云淘科技

    本章节汇总了ECS计费的常见问题。 账号问题 为什么我不能购买按量付费实例? 没有通过支付宝实名认证能不能购买按量付费ECS实例? 按量付费实例怎么开具发票? 如果我的账号余额不足,系统会提醒我吗?什么时候提示? 账号余额不足时,按量付费实例上的数据会受影响吗? 是否支持5天内无理由退款? 是否支持百倍赔偿? 购买ECS实例后第一时间提出了退款,为什么还是扣…

    2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

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

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