Este documento explica como criar uma cópia ou uma imagem instantânea de um volume de armazenamento num momento específico para a sua aplicação de contentor. Uma imagem instantânea de volume permite-lhe reverter um volume para um estado anterior ou aprovisionar um novo volume.
Este documento destina-se a programadores no grupo de operadores de aplicações, que são responsáveis por criar cargas de trabalho de aplicações para a respetiva organização. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.
Antes de começar
Para concluir as tarefas neste documento, tem de ter os seguintes recursos e funções:
Para executar comandos num cluster do Kubernetes, certifique-se de que tem os seguintes recursos:
Localize o nome do cluster do Kubernetes ou pergunte a um membro do grupo de administradores da plataforma qual é o nome do cluster.
Inicie sessão e gere o ficheiro kubeconfig para o cluster Kubernetes, se não tiver um.
Use o caminho kubeconfig do cluster Kubernetes para substituir
KUBERNETES_CLUSTER_KUBECONFIGnestas instruções.
Para receber as autorizações necessárias para gerir instantâneos de volumes num cluster partilhado, peça ao administrador de IAM da organização que lhe conceda a função de administrador do espaço de nomes (
namespace-admin) no espaço de nomes do seu projeto.Para receber as autorizações necessárias para gerir instantâneos de volumes num cluster padrão, peça ao administrador de IAM da sua organização para lhe conceder a função de programador de clusters (
cluster-developer) num cluster padrão.
Tire um instantâneo de volume
Para tirar uma captura de ecrã de um objeto PersistentVolumeClaim, crie um objeto VolumeSnapshot. O sistema não garante a consistência dos dados. Pausar
a aplicação e limpar os dados antes de tirar um instantâneo.
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 EOFSubstitua o seguinte:
KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster.NAMESPACE: o espaço de nomes no qual criar o instantâneo do volume. Para clusters partilhados, tem de ser um espaço de nomes do projeto. Para clusters padrão, pode ser qualquer espaço de nomes.VOLUME_SNAPSHOT_NAME: o nome do objetoVolumeSnapshot.PVC_NAME: o nome do PVC para o qual está a criar uma captura de ecrã.
A operação de instantâneo está concluída quando o campo
.status.readyToUsepassa atrue. Pode usar o seguinte comando para verificar o estado:kubectl --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG get volumesnapshot \ -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'Atualize o manifesto de PVC com a cópia instantânea do volume especificada como uma origem 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 EOFSubstitua o seguinte:
KUBERNETES_CLUSTER_KUBECONFIG: o ficheiro kubeconfig para o cluster.NAMESPACE: o espaço de nomes no qual o recurso PVC existe. Para clusters partilhados, tem de ser um espaço de nomes do projeto. Para clusters padrão, pode ser qualquer espaço de nomes.PVC_NAME: o nome do PVC para o qual está a criar uma captura de ecrã.VOLUME_SNAPSHOT_NAME: o nome da cópia instantânea do volume.
O que se segue?
- Vista geral das cargas de trabalho de contentores
- Crie cargas de trabalho com estado
- Aceda ao armazenamento persistente