Storage

O GKE On-Prem integra-se a sistemas de armazenamento de blocos ou arquivos externos por meio do armazenamento VMware vSphere, plug-ins de volume na árvore e drivers da Interface de armazenamento do contêiner (CSI, na sigla em inglês).

Armazenamento do vSphere

Por padrão, os clusters de administrador e de usuário do GKE On-Prem usam o armazenamento do vSphere. O cluster de administrador requer um armazenamento de dados VMware pré-provisionado para os dados etcd.

Quando você cria um cluster de usuário, o GKE On-Prem usa o plug-in de volume do vSphere para provisionar dinamicamente um novo disco de máquina virtual (VMDK, na sigla em inglês) no mesmo armazenamento de dados VMware usado pelo cluster de administração. Esse VMDK contém os dados do etcd do cluster de usuários.

O StorageClass padrão de um cluster de usuário aponta para um armazenamento de dados VMware. Por padrão, os PersistentVolumes do Kubernetes provisionados para o cluster de usuário são VMDKs. Esse não é necessariamente o mesmo armazenamento de dados usado pelo cluster de administrador.

Os armazenamentos de dados do VMware usados pelo administrador e pelos clusters de usuários podem ser respaldados por NFS, vSAN ou VMFS em um dispositivo de bloco, como uma matriz de armazenamento externo. Em um ambiente de vários hosts, cada dispositivo de bloco precisa ser anexado a todos os hosts no ambiente, e o armazenamento de dados precisa ser configurado em cada host usando a opção Mount Datastore em outros hosts.

No GKE On-Prem, StatefulSets usam PersistentVolumeClaims respaldados por StorageClasss que apontam para o armazenamento vSphere.

Plug-ins de volume do Kubernetes na árvore

O Kubernetes vem com vários plug-ins de volume na árvore. Você tem a opção de usar qualquer um deles para fornecer armazenamento em blocos ou em arquivos para suas cargas de trabalho com estado. Os plug-ins em árvore permitem que as cargas de trabalho se conectem diretamente ao armazenamento sem precisar passar pelo vSphere.

Enquanto o armazenamento do vSphere fornece automaticamente o provisionamento dinâmico de volumes dentro de um armazenamento de dados apoiado por qualquer dispositivo de armazenamento iSCSI, FC ou NFS, muitos dos plug-ins em árvore não são compatíveis com o provisionamento dinâmico. Elas exigem a criação manual de PersistentVolumes.

A tabela a seguir descreve vários plug-ins de volume na árvore:

Plug-in de volume na árvoreDescriçãoModos de acesso compatíveisProvisionamento dinâmico
Fibre ChannelPlug-in de armazenamento genéricoLeitura/gravação de pod únicoNão
iSCSIPlug-in de armazenamento genéricoLeitura/gravação de pod únicoNão
NFSPlug-in de armazenamento genéricoLer/gravar vários podsNão
RBD do CephArmazenamento definido por software de código abertoLeitura/gravação de pod únicoSim
CephFSArmazenamento definido por software de código abertoLer/gravar vários podsNão
PortworxArmazenamento proprietário definido por softwareLer/gravar vários podsSim
QuobyteArmazenamento proprietário definido por softwareLeitura/gravação de pod únicoSim
StorageOSArmazenamento proprietário definido por softwareLeitura/gravação de pod únicoSim

Interface do Container Storage

A Container Storage Interface (CSI) é uma API padrão que permite ao Kubernetes expor sistemas de armazenamento arbitrários a cargas de trabalho em contêineres. Quando você implanta um driver de volume compatível com CSI em um cluster do Kubernetes, as cargas de trabalho podem se conectar diretamente ao armazenamento sem precisar passar pelo vSphere.

O GKE On-Prem é fornecido com o Kubernetes 1.13+, compatível com CSI v1.0. Para usar o CSI no cluster, você precisa implantar o driver CSI fornecido pelo fornecedor de armazenamento. Em seguida, é possível configurar cargas de trabalho para usar o StorageClass do driver ou defini-lo como o StorageClass padrão.

Solução de problemas

Consulte Solução de problemas do armazenamento.