Storage Management Question #019e3a4f
Como funciona o provisionamento dinâmico de armazenamento?
Um usuário solicita armazenamento provisionado dinamicamente incluindo uma storage class existente em seu PersistentVolumeClaim.
Um administrador cria uma storage class e a inclui em seu arquivo de definição YAML do pod sem criar um PersistentVolumeClaim.
Um pod solicita armazenamento provisionado dinamicamente incluindo uma storage class e o nome do pod em seu PersistentVolumeClaim.
Um administrador cria um PersistentVolume e inclui o nome do PersistentVolume em seu arquivo de definição YAML do pod.
Official Explanation / Community Explanations
O provisionamento dinâmico de armazenamento no Kubernetes permite que volumes de armazenamento sejam criados sob demanda quando um usuário os solicita. A abordagem correta é o usuário incluir uma StorageClass existente em seu PersistentVolumeClaim (PVC). A StorageClass define o provisionador (por exemplo, plugin do provedor de nuvem) e os parâmetros para o volume. Quando o PVC é submetido, o plano de controle do Kubernetes provisiona automaticamente um PersistentVolume (PV) que corresponde aos requisitos do PVC, vinculando-os. Isso elimina a necessidade de um administrador pré-criar PVs.
Como funciona:
- Um administrador cria um objeto StorageClass que especifica o provisionador (por exemplo,
kubernetes.io/aws-ebs) e os parâmetros (por exemplo, tipo, IOPS). - Um usuário cria um PVC que referencia a StorageClass através do campo
storageClassName. O PVC especifica modos de acesso e solicitações de recursos (por exemplo, 10Gi de armazenamento). - O controlador do Kubernetes monitora PVCs com uma StorageClass e aciona o provisionador para criar um PV (por exemplo, um volume EBS na AWS).
- O PV recém-criado é vinculado ao PVC, e o pod pode montá-lo.
Por que a opção correta está certa:
Incluir uma StorageClass existente no PVC é o método padrão para provisionamento dinâmico. A StorageClass atua como um modelo para o provisionador criar o backend de armazenamento real.
Por que as opções incorretas estão erradas:
- Um administrador criar uma StorageClass e incluí-la em um arquivo de definição YAML do pod sem criar um PVC está incorreto porque os pods não referenciam diretamente StorageClasses; eles referenciam PVCs. O PVC é o mecanismo para solicitar armazenamento, e a StorageClass é referenciada dentro do PVC.
- Um pod solicitar armazenamento provisionado dinamicamente incluindo uma StorageClass e o nome do pod no PVC está incorreto porque PVCs não incluem nomes de pods. PVCs são recursos independentes que podem ser usados por vários pods, e a vinculação é feita através do nome do PVC na definição de volume do pod.
- Um administrador criar um PersistentVolume e incluir seu nome em um arquivo de definição YAML do pod é provisionamento estático, não dinâmico. O provisionamento dinâmico cria automaticamente o PV; criar manualmente um PV anula o propósito do provisionamento dinâmico.