Descripción del almacenamiento de contenedores
Servicios en la nube para almacenamiento de contenedores
La función de almacenamiento contenedor de CCE se implementa basada en las API de almacenamiento contenedor de Kubernetes(CSI). CCE integra múltiples tipos de almacenamiento en la nube y cubre diferentes escenarios de aplicación. CCE es totalmente compatible con los servicios de almacenamiento nativos de Kubernetes, como emptyDir, hostPath, secret y ConfigMap.
Dimensión |
EVS |
SFS |
OBS |
SFS Turbo |
---|---|---|---|---|
Definición |
EVS permite ofrecer almacenamiento en bloque ajustable para servidores de nube. Con alta confiabilidad, alto rendimiento y especificaciones ricas, los discos de EVS se pueden utilizar para los sistemas de archivos distribuidos, entornos de desarrollo/prueba, almacenes de datos y aplicaciones informáticas de alto rendimiento (HPC). |
Ampliable a petabytes, SFS proporciona almacenamiento de archivos compartidos totalmente alojado, altamente disponible y estable para manejar aplicaciones de uso intensivo de datos y ancho de banda en HPC, procesamiento de medios, uso compartido de archivos, gestión de contenido y servicios web. |
OBS es un servicio de almacenamiento de objetos estable, seguro y fácil de usar que le permite almacenar datos de cualquier formato y tamaño de forma económica. Puede usarlo en backup/archivo empresarial, video bajo demanda (VoD), videovigilancia y muchos otros escenarios. |
Ampliable a 320 TB, SFS Turbo proporciona un almacenamiento de archivos compartido totalmente alojado, altamente disponible y estable para admitir archivos y aplicaciones pequeños que requieren baja latencia y alta IOPS. Puede utilizar SFS Turbo en sitios web de alto tráfico, almacenamiento de registros, compresión/descompresión, aplicaciones de DevOps, OA empresarial y aplicaciones en contenedores. |
Lógica de almacenamiento de datos |
Almacena datos binarios y no puede almacenar archivos directamente. Para almacenar archivos, primero debe formatear el sistema de archivos. |
Almacena archivos y ordena y muestra datos en la jerarquía de archivos y carpetas. |
Almacena objetos. Los archivos almacenados directamente generan automáticamente los metadatos del sistema, que también pueden ser personalizados por los usuarios. |
Almacena archivos y ordena y muestra datos en la jerarquía de archivos y carpetas. |
Modo de acceso |
Accesible solo después de ser montado en ECS o BMS e inicializado. |
Montado en ECS o BMS usando protocolos de red. Una dirección de red debe especificarse o asignarse a un directorio local para tener acceso. |
Accesible con Internet o Direct Connect (DC). Debe especificar la dirección del bucket y utilizar protocolos de transmisión como HTTP y HTTPS. |
Admite el protocolo Network File System (NFS) (solo NFSv3). Puede integrar sin problemas las aplicaciones y herramientas existentes con SFS Turbo. |
Aprovisionamiento estático |
Se admite. Para obtener más información, véase Uso de un disco de EVS existente a través de un PV estático. |
Se admite. Para obtener más información, véase Uso de un sistema de archivos de SFS existente con un PV estático. |
Se admite. Para obtener más información, véase Uso de un bucket de OBS existente con un PV estático. |
Se admite. Para obtener más información, véase Uso de un sistema de archivos de SFS Turbo existente con un PV estático. |
Aprovisionamiento dinámico |
Se admite. Para obtener más información, véase Uso de un disco de EVS con un PV dinámico. |
Se admite. Para obtener más información, véase Uso de un sistema de archivos SFS a través de un PV dinámico. |
Se admite. Para obtener más información, véase Uso de un bucket de OBS con un PV dinámico. |
No se admite |
Funciones |
Almacenamiento no compartido. Cada volumen se puede montar en un solo nodo. |
Almacenamiento compartido de alto rendimiento y capacidad |
Sistema de archivos compartido en modo usuario |
Almacenamiento compartido con alto rendimiento y ancho de banda |
Uso |
HPC, aplicaciones de clúster de núcleo empresarial, sistemas de aplicaciones empresariales y desarrollo/prueba
NOTA:
Las aplicaciones de HPC requieren almacenamiento de alta velocidad y alta IOPS, como el diseño industrial y la exploración de energía. |
HPC, procesamiento de medios, gestión de contenido, servicios web, big data y aplicaciones de análisis
NOTA:
Las aplicaciones de HPC requieren un alto ancho de banda y almacenamiento de archivos compartidos, como la secuenciación de genes y el renderizado de imágenes. |
Análisis de big data, alojamiento de sitios web estático, video on demand en línea (VoD), secuenciación de genes, videovigilancia inteligente, copia de respaldo y archivado, y cajas en la nube empresarial (discos web) |
Sitios web de alto tráfico, almacenamiento de registros, DevOps y OA empresarial |
Capacidad |
TB |
SFS 1.0: PB |
EB |
Uso general: TB |
Latencia |
1–2 ms |
SFS 1.0: 3–20 ms |
10 ms |
Uso general: 1–5 ms |
IOPS/TPS |
33,000 para un solo disco |
SFS 1.0: 2,000 |
Decenas de millones |
Uso general: hasta 100,000 |
Ancho de banda |
MB/s |
SFS 1.0: GB/s |
TB/s |
Uso general: hasta GB/s |
CSI
Container Storage Interface (CSI) es un estándar para las interfaces de almacenamiento contenedor y una solución de implementación de complementos de almacenamiento recomendada por la comunidad Kubernetes. everest es un complemento de almacenamiento desarrollado por Huawei basado en CSI. Proporciona diferentes tipos de almacenamiento persistente para contenedores.
Modos de acceso al volumen
Los PV se pueden montar en el sistema host solo en el modo soportado por los recursos de almacenamiento subyacentes. Por ejemplo, un sistema de almacenamiento de archivos puede leerse y escribirse por múltiples nodos, pero un disco de EVS puede leerse y escribirse por un solo nodo.
- ReadWriteOnce: Un volumen puede ser montado como lectura-escritura por un solo nodo.
- ReadWriteMany: Un volumen puede ser montado como lectura-escritura por muchos nodos.
Tipo de almacenamiento |
ReadWriteOnce |
ReadWriteMany |
---|---|---|
EVS |
√ |
× |
SFS |
× |
√ |
OBS |
× |
√ |
SFS Turbo |
× |
√ |
Local PV |
√ |
× |
Política de reclamo de PV
Una política de reclamo de PV se utiliza para eliminar o reclamar volúmenes subyacentes cuando se elimina un PVC. El valor puede ser Delete o Retain.
- Delete: Al eliminar un PVC se quitará el PV de Kubernetes, por lo que los activos de almacenamiento asociados de la infraestructura externa.
Los recursos anuales/mensuales no se pueden eliminar mediante la política de recuperación Delete.
- Retain: Cuando se elimina un PVC, el PV y los recursos de almacenamiento subyacentes no se eliminan. En su lugar, debe eliminar manualmente estos recursos. Después de eso, los recursos de PV están en el estado Released y no se pueden vincular directamente al PVC.
Puede eliminar y recuperar volúmenes manualmente mediante el procedimiento siguiente:
- Elimine el PV.
- Borre los datos de los recursos de almacenamiento subyacentes asociados según sea necesario.
- Elimine los recursos de almacenamiento subyacentes asociados.
Para reutilizar los recursos de almacenamiento subyacentes, cree un PV.
Everest también le permite eliminar un PVC sin eliminar los recursos de almacenamiento subyacentes. Esta función solo se puede lograr usando un archivo YAML: Establezca la política de recuperación de PV a Delete y agregue everest.io/reclaim-policy: retain-volume-only a annotations. De esta manera, cuando se elimina el PVC, se elimina el PV, pero se conservan los recursos de almacenamiento subyacentes.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: test namespace: default annotations: volume.beta.kubernetes.io/storage-provisioner: everest-csi-provisioner everest.io/disk-volume-type: SAS labels: failure-domain.beta.kubernetes.io/region: <your_region> # Region of the node where the application is to be deployed. failure-domain.beta.kubernetes.io/zone: <your_zone> # AZ of the node where the application is to be deployed. spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: csi-disk volumeName: pv-evs-test --- apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: everest-csi-provisioner everest.io/reclaim-policy: retain-volume-only name: pv-evs-test labels: failure-domain.beta.kubernetes.io/region: <your_region> # Region of the node where the application is to be deployed. failure-domain.beta.kubernetes.io/zone: <your_zone> # AZ of the node where the application is to be deployed. spec: accessModes: - ReadWriteOnce capacity: storage: 10Gi csi: driver: disk.csi.everest.io fsType: ext4 volumeHandle: 2af98016-6082-4ad6-bedc-1a9c673aef20 volumeAttributes: storage.kubernetes.io/csiProvisionerIdentity: everest-csi-provisioner everest.io/disk-mode: SCSI everest.io/disk-volume-type: SAS persistentVolumeReclaimPolicy: Delete storageClassName: csi-disk
Soporte de proyectos empresariales
Para utilizar esta función, el complemento everest debe actualizarse a 1.2.33 o posterior.
- Creación automática de almacenamiento:
CCE permite especificar un proyecto de empresa al crear discos de EVS y PVC de OBS. Los recursos de almacenamiento creados (discos de EVS y OBS) pertenecen al proyecto de empresa especificado. El proyecto de empresa puede ser el proyecto de empresa al que pertenece el cluster o el proyecto de empresa por defecto.
Si no se especifica ningún proyecto de empresa, el proyecto de empresa especificado en StorageClass se utilizará de forma predeterminada para crear recursos de almacenamiento.- Para un StorageClass personalizado, puede especificar un proyecto de empresa de StorageClass. Para obtener más información, véase Especificación de un proyecto de empresa para clases de almacenamiento. Si StorageClass no especifica ningún proyecto de empresa, se utilizará el proyecto de empresa predeterminado.
- Para las clases de almacenamiento csi-disk y csi-obs proporcionadas por CCE, los recursos de almacenamiento creados pertenecen al proyecto de empresa predeterminado.
- Utilice el almacenamiento existente:
Cuando cree un PVC mediante un PV, asegúrese de que los everest.io/enterprise-project-id especificados en el PVC y el PV son los mismos porque se ha especificado un proyecto de empresa durante la creación de recursos de almacenamiento. De lo contrario, el PVC y el PV no se pueden unir.
Descripción de la versión del complemento
Para utilizar el complemento CSI (everest), la versión de Kubernetes debe ser 1.15 o posterior.
El complemento Flexvolume (storage-driver) se instala de forma predeterminada cuando se crea un clúster de v1.13 o anterior. Si el clúster se actualiza de v1.13 a v1.15, el storage-driver se sustituye por everest (v1.1.6 o posterior) para el almacenamiento de contenedor. La adquisición no afecta a las funciones de almacenamiento originales.
Diferencias entre los complementos de CSI y de FlexVolume
Solución de Kubernetes |
Complementos de CCE |
Funciones |
Recomendación |
---|---|---|---|
CSI |
everest |
CSI se desarrolló como un estándar para exponer los sistemas de almacenamiento de archivos y bloques arbitrarios a cargas de trabajo en contenedores. Con CSI, los proveedores de almacenamiento de terceros pueden desplegar complementos que expongan nuevos sistemas de almacenamiento en Kubernetes sin tener que tocar el código principal de Kubernetes. En CCE, el complemento everest se instala de forma predeterminada en clústeres de Kubernetes v1.15 y posteriores para conectarse a servicios de almacenamiento (EVS, OBS, SFS y SFS Turbo). El complemento everest consta de dos partes:
Para más detalles, consulte everest. |
El complemento everest se instala de forma predeterminada en clústeres de v1.15 y posteriores. CCE reflejará la comunidad de Kubernetes al proporcionar soporte continuo para las capacidades de CSI actualizadas. |
FlexVolume |
storage-driver |
FlexVolume es una interfaz de complemento fuera de árbol que existe en Kubernetes desde la versión 1.2 (antes de CSI). CCE proporcionó volúmenes de FlexVolume a través del complemento del controlador de almacenamiento instalado en clústeres de Kubernetes v1.13 y las versiones anteriores. Este complemento conecta clústeres a servicios de almacenamiento (EVS, OBS, SFS y SFS Turbo). Para obtener más información, consulte storage-driver. |
Para los clústeres creados de v1.13 o anteriores, el complemento de FlexVolume instalado (complemento storage-driver de CCE) todavía se puede utilizar. CCE deja de proporcionar soporte de actualización para este complemento, y se recomienda que actualice estos clústeres. |
- Un clúster solo puede utilizar un tipo de complementos de almacenamiento.
- El complemento de FlexVolume no puede ser reemplazado por el complemento de CSI en clusters de v1.13 o anteriores. Solo puede actualizar estos clústeres. Para obtener más información, véase Actualización de clúster.
Comprobación de complementos de almacenamiento
- Inicie sesión en la consola de CCE.
- Haga clic en el nombre del clúster para acceder a la consola del clúster. Elija Add-ons en el panel de navegación.
- Haga clic en la ficha Add-on Instance.
- Seleccione un clúster en la esquina superior derecha. Se muestra el complemento de almacenamiento predeterminado instalado durante la creación del clúster.