本页面介绍了如何为容器应用创建存储卷在特定时间点的副本或快照。借助卷快照,您可以将卷恢复到之前的状态或预配新卷。
本页面适用于应用运维人员群组中的开发者,他们负责为组织创建应用工作负载。如需了解详情,请参阅 GDC 气隙环境文档的受众群体。
准备工作
如需针对 Kubernetes 集群运行命令,请确保您拥有以下资源:
找到 Kubernetes 集群名称,或向平台管理员询问集群名称。
登录并生成 Kubernetes 集群的 kubeconfig 文件(如果您还没有)。
使用 Kubernetes 集群的 kubeconfig 路径替换这些说明中的
KUBERNETES_CLUSTER_KUBECONFIG
。
如需获得管理卷快照所需的权限,请让您的组织 IAM 管理员向您授予项目命名空间中的命名空间管理员角色 (namespace-admin
)。
创建卷快照
如需拍摄 PersistentVolumeClaim
对象的快照,请创建 VolumeSnapshot
对象。系统不保证数据一致性。在拍摄快照之前,暂停应用并刷新数据。
创建
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_NAME
:VolumeSnapshot
对象名称。PVC_NAME
:您要为其创建快照的 PVC 的名称。
当
.status.readyToUse
字段变为true
时,表示快照操作已完成。您可以使用以下命令检查状态:kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG get volumesnapshot \ -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'
使用指定为数据源的卷快照更新 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
:卷快照的名称。