Storage

GKE On-Prem se integra en sistemas de almacenamiento de archivos o bloques externos a través del almacenamiento de VMware vSphere, los complementos de volumen de árbol de Kubernetes y los controladores de la interfaz de almacenamiento de contenedores (CSI).

Almacenamiento de vSphere

De forma predeterminada, el administrador de GKE On-Prem y los clústeres de usuarios usan el almacenamiento de vSphere. El clúster de administrador requiere un almacén de datos de VMware aprovisionado con anterioridad para los datos etcd.

Cuando creas un clúster de usuario, GKE On-Prem usa el complemento de volumen de vSphere de Kubernetes para aprovisionar de forma dinámica un disco de máquina virtual nuevo (VMDK) en el mismo almacén de datos de VMware que usó el clúster de administrador. En esta VMDK, se conservan los datos etcd del clúster de usuario.

La StorageClass predeterminada para un clúster de usuarios apunta a un almacén de datos de VMware. De forma predeterminada, los PersistentVolumes de Kubernetes aprovisionados para el clúster de usuario son los VMDK de ese almacén de datos. Este no siempre es el mismo almacén de datos que usa el clúster de administrador.

Los almacenes de datos de VMware que usan los clústeres de administrador y de usuario pueden estar respaldados por NFS, vSAN o VMFS en un dispositivo de almacenamiento en bloques, como un arreglo de almacenamiento externo. En un entorno de varios hosts, cada dispositivo de almacenamiento en bloques se debe adjuntar a todos los hosts del entorno, y el almacén de datos debe configurarse en cada host a través de la opción Mount Datastore on Additional Hosts (Activar el almacén de datos en los hosts adicionales).

En GKE On-Prem, los StatefulSets usan PersistentVolumeClaims respaldadas por StorageClasses que apuntan al almacenamiento de vSphere.

Complementos de volumen de árbol de Kubernetes

Kubernetes se entrega con cierta cantidad de complementos de volumen en árbol. Tienes la opción de usar cualquiera de estos a fin de proporcionar almacenamiento en bloques o de archivos para tus cargas de trabajo con estado. Los complementos en árbol permiten que las cargas de trabajo se conecten directamente al almacenamiento sin tener que pasar por el almacenamiento de vSphere.

Mientras que el almacenamiento de vSphere proporciona de manera automática el aprovisionamiento de volúmenes dentro de un almacén de datos respaldado por cualquier dispositivo de almacenamiento iSCSI, FC o NFS, muchos de los complementos en árbol no admiten el aprovisionamiento dinámico. Necesitan que crees PersistentVolumes de manera manual.

En la siguiente tabla, se describen varios complementos de volumen en árbol:

Complemento de volumen en árbolDescripciónModos de acceso compatiblesAprovisionamiento dinámico
Canal de fibraComplemento genérico de almacenamientoUn solo Pod de lectura/escrituraNo
iSCSIComplemento genérico de almacenamientoUn solo Pod de lectura/escrituraNo
NFSComplemento genérico de almacenamientoVarios Pods de lectura/escrituraNo
RBD de CephAlmacenamiento definido por software de código abiertoUn solo Pod de lectura/escritura
CephFSAlmacenamiento definido por software de código abiertoVarios Pods de lectura/escrituraNo
PortWorxAlmacenamiento propio definido por softwareVarios Pods de lectura/escritura
QuobyteAlmacenamiento propio definido por softwareUn solo Pod de lectura/escritura
StorageOSAlmacenamiento propio definido por softwareUn solo Pod de lectura/escritura

Container Storage Interface

La Container Storage Interface (CSI) es una API estándar que permite a Kubernetes exponer sistemas de almacenamiento arbitrarios a cargas de trabajo en contenedores. Cuando implementas un controlador de volumen compatible con CSI en un clúster de Kubernetes, las cargas de trabajo pueden conectarse directamente al almacenamiento sin tener que pasar por el almacenamiento de vSphere.

GKE On-Prem realiza envíos con Kubernetes 1.13 y versiones posteriores compatibles con CSI v1.0. Para usar la CSI en tu clúster, debes implementar el controlador de CSI que proporciona tu proveedor de almacenamiento. Luego, puedes configurar las cargas de trabajo para que usen la StorageClass del controlador o configurarla como la StorageClass predeterminada.

Soluciona problemas

Consulta Soluciona problemas de almacenamiento.