@media screen and (min-width: 580px) { .flotantewhatsapp{ display:none; } }

Compartir por WhatsApp

kubernetes-proxmox-ve-container-storage-interface-csi-driver-1

Kubernetes: Proxmox VE Container Storage Interface (CSI) Driver

Kubernetes: Proxmox VE Container Storage Interface (CSI) Driver

Hoy vamos manejar el almacenamiento de Proxmox VE de forma nativa con Kubernetes…para ello usaremos un driver.

La integración de Proxmox VE con Kubernetes a través del Container Storage Interface (CSI) Driver permite que Kubernetes gestione el almacenamiento proporcionado por Proxmox VE de manera nativa. Este driver proporciona una forma estandarizada de aprovisionar y gestionar volúmenes de almacenamiento para contenedores en un clúster de Kubernetes, utilizando el almacenamiento de Proxmox VE.

Container Storage Interface (CSI) es una especificación estándar que define una interfaz para la provisión de almacenamiento en contenedores. CSI permite a los proveedores de almacenamiento desarrollar drivers que pueden ser utilizados por cualquier sistema de orquestación de contenedores que soporte la especificación CSI, como Kubernetes.

Documentación Proxmox VE CSI Driver

Os dejo unos cuantos enlaces en los que me he basado:

Beneficios del Proxmox VE CSI Driver

  • Compatibilidad: Permite que Kubernetes gestione el almacenamiento de Proxmox VE de manera nativa.
  • Eficiencia: Automatiza la provisión y gestión de volúmenes de almacenamiento, reduciendo la intervención manual.
  • Flexibilidad: Facilita la integración de las capacidades de almacenamiento de Proxmox VE en un clúster de Kubernetes.
  • Escalabilidad: Soporta la creación y eliminación dinámica de volúmenes de almacenamiento según las necesidades del clúster.

Hay que decir que estamos limitados:

kubernetes-proxmox-ve-container-storage-interface-csi-driver-6

Requisitos previos para implementar Proxmox VE CSI Driver

Antes de comenzar la instalación del Proxmox VE CSI Driver, asegúrate de cumplir con los siguientes requisitos:

  • Un clúster de Proxmox VE configurado y funcionando
  • Un clúster de Kubernetes configurado y funcionando
  • Acceso administrativo a los servidores
  • Conocimientos básicos de Proxmox VE y Kubernetes

En mi caso ya tengo todo montado en mi LAB, usaré mi clúster Proxmox en versión 8.2.2 y tres nodos de Kubernetes que ya tenía montamos sobre Debian 12:

kubernetes-proxmox-ve-container-storage-interface-csi-driver-1

Os dejo la versión de Kubernetes:

Permisos en clúster Proxmox para trabajar con CSI Driver

Necesitamos preparar nuestro clúster Proxmox para que exista un role que pueda manejar el storage desde Kubernetes. Para ello creamos un role con el siguiente comando para el driver CSI:

kubernetes-proxmox-ve-container-storage-interface-csi-driver-2

Ahora creamos un usuario y le asignamos el role que hemos creado de la siguiente forma:

Podéis validar conexión de la siguiente forma:

Os muestro como están definidos mis almacenamientos en mi clúster Proxmox, usaré para este fin el SSD480GB que pasaré a formato XFS. Lo formateo:

kubernetes-proxmox-ve-container-storage-interface-csi-driver-3

Y lo vuelvo a agregar desde Discos -> Directorio, en este caso de mi nodo:

kubernetes-proxmox-ve-container-storage-interface-csi-driver-7

Queda así, en formato XFS y montado:

kubernetes-proxmox-ve-container-storage-interface-csi-driver-8

Y el tipo de almacenamiento que tiene cada nodo de Kubernetes, con controlador SCSI “VirtlO SCSI Single”, “iothread” activado y un disco al share NFS de mi NAS Unraid de 32GB:

kubernetes-proxmox-ve-container-storage-interface-csi-driver-4

Con nuestro clúster Proxmox preparado ahora tenemos que prepara el clúster Kubernetes.

Configurar clúster Kubernetes para driver CSI

Generamos un fichero “proxmox-csi.yaml” que nos permitirá realizar la configuración, con los datos del token que hemos generado antes:

kubernetes-proxmox-ve-container-storage-interface-csi-driver-5

Creamos un namespace con nombre “csi-proxmox”:

Tenemos que etiquetar el espacio de nombres para permitir que el complemento se ejecute como privilegiado:

Ejecutamos con helm:

Ya tenemos todo preparado, os dejo unos datos extras:

Para especificar el almacenamiento dentro del clúster usaremos las siguientes etiquetas, que luego veremos en un ejemplo como utilizarlas:

  • topology.kubernetes.io/region
  • topology.kubernetes.io/zone
  • Spec.ProviderID

Para la definición de los recursos de almacenamiento tendremos las siguientes variables que pasaremos en un fichero “storageclass.yaml”:

Modificamos el parámetro “storage” en mi caso por SSD480GB, “ssd” en mi caso a TRUE, “csi.storage.k8s.io/fstype” a XFS y “cache” a NONE. Os dejo más detalle:

https://github.com/sergelogvinov/proxmox-csi-plugin/blob/main/docs/options.md

Os dejo un ejemplo de NFS:

Validar driver CSI

Revisamos que está todo implementado:

Nos mostrará este comando el storage disponible:

Deployment de ejemplo CSI Kubernetes + Proxmox

Podemos lanzar un deployment de prueba generando un Pod de la siguiente forma. Yo lo he bajado y adaptado a mi entorno para ejecutarlo:

El contenido original es el siguiente:

StatefulSet con almacenamiento persistente de ejemplo CSI Kubernetes + Proxmox

Os dejo el enlace y el contenido original. Yo lo he bajado y adaptado a mi entorno para ejecutarlo:

 

Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?

El Blog de Negu

Acerca de Raul Unzue Pulido

Administrador de sistemas virtuales e infraestructuras IT, linuxero y entusiasta de la tecnología.

Compruebe también

introduccion-a-la-api-de-proxmox

Introducción a la API de Proxmox

Introducción a la API de Proxmox Proxmox Virtual Environment (Proxmox VE) es una plataforma de …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

dos × cuatro =

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies
Blog Maquinas Virtuales - El Blog de Negu