Unificada, automatizada y preparada para convertir los datos en inteligencia.
Descubra cómo extraer el verdadero valor de sus datos.
La gestión del almacenamiento para las aplicaciones con estado es un aspecto crucial de la orquestació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 este finaliza, las PV proporcionan una manera de gestionar y asignar el almacenamiento persistente a las aplicaciones. Esto garantiza que los datos permanezcan intactos, incluso si los pods que acceden a ellos han finalizado o se han reprogramado.
El uso de volúmenes persistentes proporciona ventajas como:
Los volúmenes persistentes de Kubernetes ofrecen varias características clave que los hacen potentes y adaptables a las 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 el rendimiento (por ejemplo, SSD frente a HDD), la capacidad, la durabilidad y el coste. Esto permite que los administradores aprovisionen almacenamiento adaptado a los requisitos específicos de las aplicaciones.
Los modos de acceso definen el modo en que los pods pueden interactuar con el almacenamiento proporcionado por una PV . Aquí tiene un desglose de los modos comunes:
Las políticas de recuperación establecen el modo en que Kubernetes maneja una PV después de que ya no está vinculada a un pod. Las políticas principales incluyen:
Kubernetes utiliza complementos de volumen para salvar la brecha entre la plataforma y varios proveedores de almacenamiento. Estos complementos permiten que Kubernetes comprenda e interactúe con diversos back-ends de almacenamiento, incluidos el almacenamiento local, las soluciones de almacenamiento conectado en red (NAS), como NFS o iSCSI, y los servicios de almacenamiento específicos de proveedores de la nube, como AWS EBS o GCE Persistent Disk. Esta arquitectura de complemento proporciona una flexibilidad significativa a la hora de elegir e integrar las soluciones de almacenamiento con su clúster de Kubernetes.
Kubernetes ofrece dos métodos principales para aprovisionar volúmenes persistentes (PV): aprovisionamiento estático y aprovisionamiento dinámico. Cada enfoque satisface diferentes casos de uso y proporciona ventajas distintas.
En el aprovisionamiento estático, los administradores de clúster crean y configuran manualmente las PV con antelación. Este enfoque proporciona un control detallado de la configuración del almacenamiento y es adecuado para escenarios con requisitos de almacenamiento bien definidos que no cambian con frecuencia. Para aprovisionar una PV estáticamente:
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 específicos del complemento de volumen (por ejemplo, la dirección del servidor para NFS ).
2. Cree el objeto PV usando YAML: Utilice un archivo de manifiesto YAML para definir la configuración PV. Este es un ejemplo de uso del 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: Utilice el comando kubectl apply -f para crear el objeto PV en su clúster de Kubernetes.
El aprovisionamiento dinámico utiliza 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 gestione la creación de PV bajo demanda cuando una reclamación de volumen persistente (PVC) solicita almacenamiento. Para usar el aprovisionamiento dinámico:
1. Defina una clase de almacenamiento: Cree un manifiesto StorageClass YAML que especifique el aprovisionamiento, el tipo de almacenamiento (por ejemplo, SSD, HDD ) y cualquier parámetro adicional que el aprovisionamiento requiera. Aquí tiene 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 StorageClass: Utilice kubectl apply -f para crear el objeto StorageClass en su clúster.
La vinculación de una PV a un pod permite que las aplicaciones aprovechen el almacenamiento persistente. Esta unión se consigue normalmente a través de una reclamación de volumen persistente (PVC).
Un PVC actúa como una solicitud de almacenamiento presentada por un pod. Especifica los requisitos de almacenamiento que un pod tiene, incluidos:
Existen dos métodos principales para vincular PV a pods:
Aquí tiene 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 gestione sus datos persistentes almacenados en la PV subyacente.
Es imprescindible gestionar eficazmente sus volúmenes persistentes (PV) para mantener un uso eficiente y escalable del almacenamiento en su clúster de Kubernetes. Algunos aspectos clave de la gestión PV son:
Kubernetes v1.11 introdujo la capacidad de cambiar el tamaño de las PV. Esto le permite ajustar dinámicamente la capacidad de almacenamiento asignada a una PV para satisfacer los crecientes requisitos de almacenamiento de sus aplicaciones.
Para cambiar el tamaño de una PV, actualice la solicitud de almacenamiento del PVC: Edite el PVC que hace referencia a la 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 la PV . El redimensionamiento de una PV suele ser una operación unidireccional (ampliación del almacenamiento). No se admite la reducción del tamaño de una PV debido a las posibles preocupaciones relacionadas con la pérdida de datos.
Para eliminar una PV, asegúrese de que actualmente no está vinculada a ningún PVC. No puede eliminar una PV que esté usando un PVC para evitar la pérdida de datos. Así es como se borra una PV:
kubectl delete pv pv-example
Sustituya el ejemplo de pv por el nombre real de la PV que desea eliminar.
Si bien la capacidad de almacenamiento central no puede modificarse directamente dentro de un objeto PV, puede actualizar ciertos campos de metadatos de una PV, como etiquetas o anotaciones. Estas etiquetas y anotaciones pueden usarse para organizar, identificar y gestionar mejor sus PV dentro del clúster.
Estas son algunas de las mejores prácticas que debe seguir para sacar el máximo partido de los volúmenes persistentes de Kubernetes:
Los volúmenes persistentes (PV) de Kubernetes ofrecen un mecanismo fundamental para gestionar el almacenamiento en aplicaciones con estado. Al utilizar las PV, puede garantizar la persistencia de los datos, la alta disponibilidad y el uso eficiente del almacenamiento dentro de su clúster de Kubernetes. Las soluciones como Portworx de Pure Storage proporcionan una manera intuitiva de aprovechar las ventajas de los volúmenes persistentes de Kubernetes. Con características como la alta disponibilidad, la recuperación de desastres y las copias de seguridad que utilizan inteligencia artificial para mejorar la eficiencia, Portworx es la solución de almacenamiento persistente de Kubernetes ideal para las aplicaciones contenedorizadas.
Prepárese para el evento más valioso al que asistirá este año.
Acceda a vídeos y demostraciones bajo demanda para ver lo que Everpure puede hacer.
Charlie Giancarlo explica por qué la gestión de los datos —y no del almacenamiento— es el futuro. Descubra cómo un enfoque unificado transforma las operaciones de TI de la empresa.
Las cargas de trabajo modernas exigen velocidad, seguridad y escala preparadas para la IA. ¿Su stack está listo?