Unificado, automatizado y listo para convertir los datos en inteligencia.
Ontdek hoe u de ware waarde van uw gegevens kunt ontsluiten.
La administración del almacenamiento para aplicaciones con estado es un aspecto crucial de la organización de contenedores. El volumen persistente de Kubernetes (PV ) es una característica fundamental que aborda esta necesidad al proporcionar un mecanismo para administrar los recursos de almacenamiento independientemente del ciclo de vida de los pods individuales. En este artículo, profundizaremos en el concepto de volumen persistente de Kubernetes, sus características y las mejores prácticas para usarlo de manera efectiva en sus clústeres de Kubernetes.
Un volumen persistente de Kubernetes (PV) es un recurso de almacenamiento en un clúster de Kubernetes que abstrae la tecnología de almacenamiento subyacente. A diferencia del almacenamiento temporal, que está vinculado al ciclo de vida de un pod y desaparece cuando el pod se termina, los PV proporcionan una forma de administrar y asignar almacenamiento persistente a las aplicaciones. Esto garantiza que los datos permanezcan intactos incluso si los pods que acceden a ellos se terminan o reprograman.
El uso de volúmenes persistentes proporciona beneficios como los siguientes:
Los volúmenes persistentes de Kubernetes ofrecen varias funciones clave que los hacen potentes y adaptables para diversas necesidades de almacenamiento:
Las clases de almacenamiento actúan como plantillas que definen diferentes niveles o categorías de almacenamiento disponibles en un clúster. Pueden especificar características como rendimiento (p. ej., SSD frente a HDD), capacidad, durabilidad y costo. Esto permite a los administradores aprovisionar almacenamiento adaptado a los requisitos específicos de las aplicaciones.
Los modos de acceso definen cómo los pods pueden interactuar con el almacenamiento proporcionado por un PV. Aquí hay un desglose de los modos comunes:
Las políticas de recuperación dictan cómo Kubernetes maneja un PV después de que ya no está vinculado a un pod. Las políticas principales incluyen:
Kubernetes aprovecha los complementos de volumen para cerrar la brecha entre la plataforma y varios proveedores de almacenamiento. Estos complementos permiten que Kubernetes comprenda e interactúe con diversos backends de almacenamiento, incluido el almacenamiento local, las soluciones de almacenamiento conectado a la red (NAS ), como NFS o iSCSI, y los servicios de almacenamiento específicos del proveedor de la nube, como AWS EBS o GCE Persistent Disk. Esta arquitectura de complemento proporciona una flexibilidad significativa para elegir e integrar soluciones de almacenamiento con su clúster de Kubernetes.
Kubernetes ofrece dos métodos principales para el aprovisionamiento de volúmenes persistentes (PV): aprovisionamiento estático y aprovisionamiento dinámico. Cada enfoque se adapta a diferentes casos de uso y proporciona ventajas distintivas.
En el aprovisionamiento estático, los administradores de clústeres crean y configuran de forma manual los PV de antemano. Este enfoque proporciona un control detallado sobre la configuración del almacenamiento y es adecuado para escenarios con requisitos de almacenamiento bien definidos que no cambian con frecuencia. Para aprovisionar un PV de forma estática:
1. Defina los detalles del almacenamiento: Determine la capacidad de almacenamiento, los modos de acceso (ReadWriteOnce, ReadOnlyMany, ReadWriteMany), la política de recuperación (Retener, Reciclar, Eliminar) y los detalles del complemento de volumen (p. ej., dirección del servidor para NFS ).
2. Cree el objeto PV usando YAML: Use un archivo de manifiesto YAML para definir la configuración de PV. Este es un ejemplo que utiliza el almacenamiento NFS:
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv-nfs
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
path: /path/to/nfs/share
server: nfs-server.example.com
3. Aplique el manifiesto YAML: Use el comando kubectl apply -f para crear el objeto PV en su clúster de Kubernetes.
El aprovisionamiento dinámico aprovecha StorageClasses para automatizar la creación de PV. Los administradores definen las clases de almacenamiento que especifican las características de almacenamiento deseadas y permiten que Kubernetes maneje la creación de PV según demanda cuando un persistenteVolumeClaim (PVC) solicita almacenamiento. Para usar el aprovisionamiento dinámico:
1. Defina una clase de almacenamiento: Cree un manifiesto de StorageClass YAML que especifique el aprovisionador, el tipo de almacenamiento (p. ej., SSD, HDD) y cualquier parámetro adicional requerido por el aprovisionador. Este es un ejemplo de AWS EBS:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: standard-ebs
provisioner: kubernetes.io/aws-ebs
parameters:
type: gp2
2. Aplique el manifiesto de StorageClass: Use kubectl apply -f para crear el objeto StorageClass en su clúster.
La vinculación de un PV a un pod permite que las aplicaciones aprovechen el almacenamiento persistente. Por lo general, esta unión se logra a través de PersistentVolumeClaim (PVC).
Un PVC actúa como una solicitud de almacenamiento presentada por un pod. Especifica los requisitos de almacenamiento que tiene un pod, incluidos los siguientes:
Existen dos métodos principales para vincular PV a pods:
Este es un ejemplo de un pod llamado “ejemplo de pod” que utiliza un PVC llamado “ejemplo de PVC”:
apiVersion: v1
kind: Pod
metadata:
name: pod-example
spec:
containers:
- name: app
image: nginx
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: pvc-storage
volumes:
- name: pvc-storage
persistentVolumeClaim:
claimName: pvc-example
En este ejemplo, el pod monta el PVC llamado "pvc-ejemplo" en la ruta "/usr/share/nginx/html" dentro del contenedor. Esto permite que el pod acceda y administre sus datos persistentes almacenados en la PV subyacente.
Es imperativo administrar sus volúmenes persistentes (PV) de manera eficaz para mantener una utilización de almacenamiento eficiente y escalable en su clúster de Kubernetes. Algunos aspectos clave de la administración de PV incluyen:
Kubernetes v1.11 introdujo la capacidad de cambiar el tamaño de los PV. Esto le permite ajustar dinámicamente la capacidad de almacenamiento asignada a un PV, para satisfacer los crecientes requisitos de almacenamiento de sus aplicaciones.
Para cambiar el tamaño de un PV, actualice la solicitud de almacenamiento del PVC: Edite el PVC que hace referencia al PV y modifique el valor de almacenamiento dentro de la sección resources.requests de la especificación YAML del PVC. Por ejemplo, para aumentar el tamaño de un PVC llamado “ejemplo de PVC” a 20Gi, actualice el manifiesto YAML:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-example
spec:
resources:
requests:
storage: 20Gi
Una vez que actualiza la solicitud de almacenamiento del PVC, Kubernetes intenta cambiar el tamaño del almacenamiento subyacente aprovisionado para el PV. Cambiar el tamaño de un PV es generalmente una operación unidireccional (expansión del almacenamiento). No se admite la reducción del tamaño de un PV debido a posibles inquietudes sobre la pérdida de datos.
Para eliminar un PV, asegúrese de que no esté vinculado actualmente a ningún PVC. No puede eliminar una PV en uso por un PVC para evitar la pérdida de datos. Aquí le mostramos cómo eliminar un PV:
kubectl delete pv pv-example
Reemplace el pv-ejemplo con el nombre real del PV que desea eliminar.
Si bien la capacidad de almacenamiento central no se puede modificar directamente dentro de un objeto de PV, puede actualizar ciertos campos de metadatos de un PV, como etiquetas o anotaciones. Estas etiquetas y anotaciones se pueden usar para organizar, identificar y administrar mejor sus PV dentro del clúster.
Las siguientes son algunas de las mejores prácticas que debe seguir para aprovechar al máximo los volúmenes persistentes de Kubernetes:
Los volúmenes persistentes (PV) de Kubernetes ofrecen un mecanismo fundamental para administrar el almacenamiento en aplicaciones con estado. Al aprovechar los PV, puede garantizar la persistencia de los datos, la alta disponibilidad y la utilización eficiente del almacenamiento dentro de su clúster de Kubernetes. Soluciones como Portworx de Pure Storage ofrecen una forma intuitiva de aprovechar los beneficios de los volúmenes persistentes de Kubernetes. Con características como alta disponibilidad, recuperación ante desastres y copia de seguridad que utiliza inteligencia artificial para mejorar la eficiencia, Portworx es la solución de almacenamiento persistente de Kubernetes ideal para aplicaciones en contenedores.
Prepárese para el evento más valioso al que asistirá este año.
Acceda a videos y demostraciones según demanda para ver lo que Everpure puede hacer.
Charlie Giancarlo explica por qué la administración de datos, no el almacenamiento, es el futuro. Descubra cómo un enfoque unificado transforma las operaciones de TI de una empresa.
Las cargas de trabajo modernas exigen velocidad, seguridad y escalabilidad listas para la AI. ¿Su pila está lista?