Almacenamiento

En esta página, se explican los conceptos de almacenamiento de los clústeres de Anthos alojados en VMware (GKE On-Prem).

Resumen

Los clústeres de Anthos alojados en VMware se integran 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 los clústeres de Anthos alojados en VMware usan un StorageClass de Kubernetes predeterminado para aprovisionar almacenamiento para 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 los clústeres de Anthos alojados en VMware 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 usuarios, los clústeres de Anthos alojados en VMware usan el complemento de volumen de Kubernetes de vSphere para aprovisionar de forma dinámica nuevos discos de máquina virtual (VMDK) 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 clústeres de Anthos alojados en VMware incluyen una StorageClass predeterminada de Kubernetes, 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 los clústeres de Anthos alojados en VMware, los StatefulSets de Kubernetes (cargas de trabajo con estado que generalmente requieren almacenamiento continuo) usan PersistentVolumeClaims respaldados por StorageClasss que apuntan de forma predeterminada al almacenamiento de vSphere.

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 Anthos alojado en VMware, las cargas de trabajo pueden conectarse directamente a un dispositivo de almacenamiento compatible sin tener que pasar por el almacenamiento de vSphere.

Los clústeres de Anthos alojadows en VMware son 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.

Nos asociamos con muchos proveedores de almacenamiento para calificar sus sistemas de almacenamiento con los clústeres de Anthos alojados en VMware. Consulta la lista completa de socios de almacenamiento calificados.

Controlador de CSI de vSphere

De forma predeterminada, los clústeres de Anthos alojados en VMware aprovechan el complemento de volumen en árbol de VMware, el proveedor de servicios en la nube de vSphere (VCP), que habilita de forma automática la compatibilidad con almacenes de datos de VMware, incluido vSAN. El controlador CSI de vSphere se implementa de forma automática en los clústeres de clústeres de Anthos alojados en VMware y está disponible como una función de vista previa a partir de la de la versión 1.5 de los clústeres de Anthos alojados en VMware.

Instantáneas del volumen de CSI

Puedes crear instantáneas de almacenamiento continuo con los recursos VolumeSnapshot y VolumeSnapshotClass. Para usar esta característica en un volumen de CSI, el controlador CSI debe admitir instantáneas de volumen, y el contenedor de archivo adicional external-snapshotter debe incluirse en la implementación del controlador CSI.

Para obtener más información sobre las instantáneas de volumen, consulta Usa instantáneas de volumen.

Los controladores de instantáneas CSI se implementan de forma automática cuando creas un clúster.

Limpieza de volumen

Cuando borras un clúster de usuario, es posible que los volúmenes aprovisionados por el complemento de volumen en árbol de VMware no se borren. Sin embargo, cuando se borra un clúster de usuario, no se borran los volúmenes aprovisionados por el controlador de CSI de vSphere. Debes confirmar que todos los volúmenes, PVC y StatefulSets se borren antes de borrar el clúster.

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

Configurar 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).

Soluciona problemas

Consulta Soluciona problemas de almacenamiento.

Lecturas adicionales