Este documento explica como criar uma cópia, ou um instantâneo, de um volume de armazenamento num momento específico para a sua aplicação de contentor. Um instantâneo de volume permite-lhe repor 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 pela criação de cargas de trabalho de aplicações para a respetiva organização. Para mais informações, consulte Públicos-alvo para a documentação isolada do GDC.
Antes de começar
Para concluir as tarefas neste documento, tem de pedir as autorizações necessárias e preparar o seu ambiente.
Peça funções do IAM
Tem de ter funções específicas para receber as autorizações de que precisa para criar instantâneos de volumes. As funções necessárias dependem de estar a trabalhar num cluster partilhado com âmbito da organização ou num cluster padrão com âmbito do projeto. Para mais informações, consulte o artigo Configurações de clusters do Kubernetes.
Funções de clusters partilhados
Para criar, eliminar, editar ou ver instantâneos de volumes num cluster partilhado, peça ao administrador do IAM do projeto para lhe conceder a função Administrador do espaço de nomes (namespace-admin).
Esta função está associada ao espaço de nomes do projeto.
Funções de clusters padrão
Para criar, eliminar, editar ou ver instantâneos de volumes num cluster padrão, peça ao administrador do IAM do projeto para lhe conceder a função Programador de clusters (cluster-developer). Esta função está associada ao espaço de nomes do projeto.
Prepare o seu ambiente
Para executar comandos num cluster do Kubernetes através da API, 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 do Kubernetes.
Use o caminho kubeconfig do cluster do Kubernetes para substituir
KUBERNETES_CLUSTER_KUBECONFIGnestas instruções.
Tire um instantâneo de volume
Para tirar um instantâneo de um objeto PersistentVolumeClaim, crie um objeto VolumeSnapshot. O sistema não garante a consistência dos dados. Pause a aplicação e sincronize 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 do cluster.NAMESPACE: o espaço de nomes no qual criar o instantâneo de 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 da PVC para a qual está a criar um instantâneo.
A operação de instantâneo está concluída quando o campo
.status.readyToUsese tornatrue. 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 da PVC com o instantâneo de volume especificado 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 do cluster.NAMESPACE: o espaço de nomes no qual o recurso da 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 da PVC para a qual está a criar um instantâneo.VOLUME_SNAPSHOT_NAME: o nome do instantâneo de volume.
O que se segue?
- Vista geral das cargas de trabalho de contentores
- Crie cargas de trabalho com estado
- Aceda ao armazenamento persistente