Storage

En esta página, se explican los conceptos de almacenamiento de GKE On-Prem.

Resumen

GKE On-Prem se integra a sistemas de almacenamiento de archivos o bloques externos mediante el almacenamiento VMware vSphere, complementos de volumen en el árbol de Kubernetes (o “controladores”) y controladores de Container Storage Interface (CSI).

Los clústeres de GKE On-Prem usan una StorageClass de Kubernetes predeterminada a fin de aprovisionar el almacenamiento para las cargas de trabajo con estado en un almacén de datos de vSphere. También puedes usar una StorageClass para aprovisionar diferentes volúmenes de almacenamiento.

Almacenamiento de vSphere

De forma predeterminada, los clústeres de GKE On-Prem usan el almacenamiento de vSphere. El clúster de administrador requiere un almacén de datos de vSphere 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 discos de máquina virtual (VMDK) nuevos en un almacén de datos de vSphere. Ten en cuenta que antes de la versión 1.2, los clústeres de usuario usaban el mismo almacén de datos que los clústeres de administrador.

Los almacenes de datos de vSphere 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).

Almacenamiento predeterminado

Los clústeres de GKE On-Prem incluyen una StorageClass de Kubernetes predeterminada, que determina cómo Kubernetes debe aprovisionar el almacenamiento. Después de que Kubernetes aprovisiona volúmenes de almacenamiento, los PersistentVolumes de Kubernetes los representan.

La StorageClass predeterminada de un clúster de usuario apunta a un almacén de datos de vSphere, que se establece en el campo datastore de la configuración de StorageClass. 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.

En GKE On-Prem, los StatefulSets de Kubernetes (cargas de trabajo con estado que suelen requerir almacenamiento continuo) usan PersistentVolumeClaims respaldadas por StorageClasses que apuntan al almacenamiento de vSphere de forma predeterminada.

Container Storage Interface

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

GKE On-Prem es compatible 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.

Nos asociamos con muchos proveedores de almacenamiento para calificar sus sistemas de almacenamiento con GKE On-Prem. Consulta la lista completa de socios de almacenamiento calificados.

De forma predeterminada, GKE On-Prem aprovecha el complemento de volumen en árbol de VMware, vSphere Cloud Provider (VCP), que habilita automáticamente la compatibilidad con almacenes de datos de VMware, incluido vSAN. La implementación manual del controlador CSI de vSphere no es obligatoria ni recomendada en este momento, ya que GKE On-Prem incluirá el controlador CSI de vSphere en una versión futura.

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

Configura el almacenamiento del clúster

Si deseas aprovisionar volúmenes de almacenamiento distintos de los almacenes de datos de vSphere, puedes crear una StorageClass nueva en un clúster que use un controlador de almacenamiento diferente. Luego, puedes establecer la StorageClass como la configuración predeterminada del clúster o configurar las cargas de trabajo para que usen la StorageClass (ejemplo de StatefulSet).

Solución de problemas

Consulta Soluciona problemas de almacenamiento.

Lecturas adicionales