Criar snapshots de volume

Nesta página, explicamos como criar uma cópia, ou snapshot, de um volume de armazenamento em um momento específico para seu aplicativo de contêiner. Com um snapshot de volume, é possível trazer um volume de volta a um estado anterior ou provisionar um novo volume.

Esta página é destinada a desenvolvedores do grupo de operadores de aplicativos, que são responsáveis por criar cargas de trabalho de aplicativos para a organização. Para mais informações, consulte Públicos-alvo para documentação isolada do GDC.

Antes de começar

Para executar comandos em um cluster do Kubernetes, verifique se você tem os seguintes recursos:

  1. Localize o nome do cluster do Kubernetes ou pergunte ao administrador da plataforma.

  2. Faça login e gere o arquivo kubeconfig para o cluster do Kubernetes se você não tiver um.

  3. Use o caminho kubeconfig do cluster do Kubernetes para substituir KUBERNETES_CLUSTER_KUBECONFIG nestas instruções.

Para receber as permissões necessárias para gerenciar snapshots de volume, peça ao administrador do IAM da organização para conceder a você o papel de administrador do namespace (namespace-admin) no namespace do projeto.

Criar um snapshot de volume

Para criar um snapshot de um objeto PersistentVolumeClaim, crie um objeto VolumeSnapshot. O sistema não garante a consistência dos dados. Pause o aplicativo e limpe os dados antes de tirar um instantâneo.

  1. Crie um recurso personalizado 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
    

    Substitua:

    • KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster.

    • NAMESPACE: o namespace do projeto em que o snapshot de volume será criado.

    • VOLUME_SNAPSHOT_NAME: o nome do objeto VolumeSnapshot.

    • PVC_NAME: o nome do PVC para o qual você está criando um snapshot.

  2. A operação de snapshot será concluída quando o campo .status.readyToUse se tornar true. Use o comando a seguir para verificar o status:

      kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG get volumesnapshot \
        -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'
    
  3. Atualize o manifesto do PVC com o snapshot de volume especificado como uma fonte de dados:

    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
    

    Substitua:

    • KUBERNETES_CLUSTER_KUBECONFIG: o arquivo kubeconfig do cluster.

    • NAMESPACE: o namespace em que o recurso PVC existe.

    • PVC_NAME: o nome do PVC para o qual você está criando um snapshot.

    • VOLUME_SNAPSHOT_NAME: o nome do snapshot de volume.

A seguir