Este tópico explica como instalar um controlador de armazenamento da interface de armazenamento de contentores (CSI) nos seus clusters.
Vista geral
Por predefinição, o GKE on AWS aprovisiona volumes EBS da AWS usando a StorageClass predefinida. Se as suas cargas de trabalho precisarem de usar outro tipo de volume de armazenamento, pode instalar um controlador CSI compatível para fornecer acesso ao mesmo.
O Container Storage Interface
(CSI) é uma API padrão aberta que dá às cargas de trabalho do Kubernetes acesso a sistemas de armazenamento em conformidade. O CSI também permite a utilização de funcionalidades de armazenamento modernas, como a alteração do tamanho e as capturas de ecrã.
Depois de instalar um controlador CSI, tem de criar uma StorageClass do Kubernetes. Definiu o controlador CSI como o aprovisionador para a StorageClass. Em seguida, pode definir o StorageClass como predefinição ou configurar as suas cargas de trabalho para usar o StorageClass. Para ver um exemplo de como criar um StatefulSet com uma StorageClass personalizada, consulte o artigo Usar StorageClasses com as suas cargas de trabalho.
Instale um controlador CSI de um fornecedor
Os fornecedores de armazenamento são responsáveis por fornecer instruções de instalação para os respetivos controladores CSI. Consulte a lista de controladores CSI na documentação CSI.
Siga as instruções de instalação do controlador CSI e, em seguida, continue com os passos seguintes nesta página.
Valide a instalação do controlador
Depois de instalar um controlador CSI, pode validar a instalação executando os seguintes comandos.
kubectl get csinodes \
-o jsonpath='{range .items[*]} {.metadata.name}{": "} {range .spec.drivers[*]} {.name}{"\n"} {end}{end}'
Como usar um controlador CSI
Para usar um controlador CSI:
Crie uma StorageClass personalizada que faça referência ao controlador no respetivo campo
provisioner
.Para aprovisionar armazenamento, pode:
- Faça referência à StorageClass na especificação de um StatefulSet.
volumeClaimTemplates
- Defini-la como a StorageClass predefinida do cluster.
- Faça referência à StorageClass na especificação de um StatefulSet.
Considerações para StorageClass suportado por um controlador CSI
Quando cria uma StorageClass, considere o seguinte:
Consulte a documentação do controlador CSI para ver os parâmetros específicos do controlador que faculta à sua StorageClass, incluindo o nome do aprovisionador.
Deve dar o nome StorageClass de acordo com as respetivas propriedades (como
fast
ouhighly-replicated
) e não de acordo com o nome do controlador específico ou do dispositivo por detrás. Quando dá um nome a uma StorageClass com base nas respetivas propriedades, pode criar StorageClasses com o mesmo nome em diferentes clusters e ambientes. Em seguida, configure as suas cargas de trabalho para usar a mesma StorageClass.
O que se segue?
- Crie uma StorageClass que faça referência ao controlador CSI.