创建卷快照

本页面介绍了如何为容器应用创建存储卷在特定时间点的副本或快照。借助卷快照,您可以将卷恢复到之前的状态或预配新卷。

本页面适用于应用运维人员群组中的开发者,他们负责为组织创建应用工作负载。如需了解详情,请参阅 GDC 气隙环境文档的受众群体

准备工作

如需针对 Kubernetes 集群运行命令,请确保您拥有以下资源:

  1. 找到 Kubernetes 集群名称,或向平台管理员询问集群名称。

  2. 登录并生成 Kubernetes 集群的 kubeconfig 文件(如果您还没有)。

  3. 使用 Kubernetes 集群的 kubeconfig 路径替换这些说明中的 KUBERNETES_CLUSTER_KUBECONFIG

如需获得管理卷快照所需的权限,请让您的组织 IAM 管理员向您授予项目命名空间中的命名空间管理员角色 (namespace-admin)。

创建卷快照

如需拍摄 PersistentVolumeClaim 对象的快照,请创建 VolumeSnapshot 对象。系统不保证数据一致性。在拍摄快照之前,暂停应用并刷新数据。

  1. 创建 VolumeSnapshot 自定义资源:

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: snapshot.storage.k8s.io/v1
    kind: VolumeSnapshot
    metadata:
      name: VOLUME_SNAPSHOT_NAME
    spec:
      source:
        persistentVolumeClaimName: PVC_NAME
    EOF
    

    替换以下内容:

    • KUBERNETES_CLUSTER_KUBECONFIG:集群的 kubeconfig 文件。

    • NAMESPACE:要在其中创建卷快照的项目命名空间。

    • VOLUME_SNAPSHOT_NAMEVolumeSnapshot 对象名称。

    • PVC_NAME:您要为其创建快照的 PVC 的名称。

  2. .status.readyToUse 字段变为 true 时,表示快照操作已完成。您可以使用以下命令检查状态:

      kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG get volumesnapshot \
        -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'
    
  3. 使用指定为数据源的卷快照更新 PVC 清单:

    kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: PVC_NAME
    spec:
      dataSource:
        name: VOLUME_SNAPSHOT_NAME
        kind: VolumeSnapshot
        apiGroup: snapshot.storage.k8s.io
      storageClassName: standard-rwo
      accessModes:
        - ReadWriteOnce
     resources:
       requests:
       storage: 10Gi
    EOF
    

    替换以下内容:

    • KUBERNETES_CLUSTER_KUBECONFIG:集群的 kubeconfig 文件。

    • NAMESPACE:PVC 资源所在的命名空间。

    • PVC_NAME:您要为其创建快照的 PVC 的名称。

    • VOLUME_SNAPSHOT_NAME:卷快照的名称。

后续步骤