Integración con Kubernetes
VergeOS ofrece integración nativa con Kubernetes mediante un controlador de almacenamiento CSI y un Cloud Controller Manager, brindando a los clústeres en VMs de VergeOS almacenamiento persistente, gestión del ciclo de vida de nodos y balanceadores de carga.
Descripción general
VergeOS proporciona integración nativa con Kubernetes a través de un controlador de almacenamiento CSI y un Cloud Controller Manager (CCM). Estos componentes conectan cualquier clúster de Kubernetes que se ejecute en VMs de VergeOS — ya sea aprovisionado mediante Rancher, kubeadm o cualquier otro método — con la plataforma subyacente VergeOS.
Almacenamiento persistente para pods de Kubernetes mediante VergeOS vSAN
Gestión del ciclo de vida de nodos e integración con balanceador de carga
Requisitos previos
Un clúster de Kubernetes ejecutándose en VMs de VergeOS (RKE2, K3s, kubeadm, etc.)
Una clave de API de VergeOS (generada en Configuración de usuario)
kubectlyhelmHerramientas de CLIAcceso al kubeconfig del clúster
Controlador CSI
El controlador de la interfaz de almacenamiento de contenedores (CSI) permite que los pods de Kubernetes soliciten y monten almacenamiento de VergeOS como volúmenes persistentes. Delega las operaciones de almacenamiento directamente a la API de VergeOS, usando vSAN para lo que fue diseñado: deduplicación, colocación multinivel y redundancia distribuida.
Backends de almacenamiento
El controlador CSI admite dos backends, ambos servidos por un único binario Go:
NAS
ReadWriteMany
Volúmenes EXT4 en los servicios NAS de VergeOS, expuestos por NFS
Bloque
ReadWriteOnce
Unidades de VM conectadas en caliente a VMs de VergeOS a través de vSAN
VM de pool de almacenamiento en bloque
Para almacenamiento en bloque, cree una VM vacía en VergeOS llamada k8spool. Nunca necesita arrancar: solo alberga unidades de bloque inactivas. El ID de la VM se pasa al chart de Helm durante la instalación.
Instalación
El controlador CSI se distribuye como un chart de Helm desde el repositorio verge-io de Helm y se puede instalar mediante la CLI de Helm o a través de la Rancher Apps UI en clústeres descendentes. Consulte Documentación y recursos a continuación para detalles del chart, valores de Helm y opciones de configuración.
Clúster descendente
Al instalar a través de la interfaz de usuario de Rancher Apps, el repositorio de Helm debe agregarse en el clúster descendente, no en el clúster de gestión de Rancher. Los ClusterRepos no se propagan desde el clúster de gestión.
Cloud Controller Manager
El Cloud Controller Manager (CCM) es la interfaz estándar del proveedor de nube de Kubernetes para VergeOS. Se encarga de la gestión del ciclo de vida de los nodos y del aprovisionamiento del balanceador de carga.
Funciones
Gestión de nodos — Rellena los metadatos del nodo de Kubernetes (ID de proveedor, tipo de instancia, IP internas) a partir de VMs de VergeOS. Detecta la existencia de la VM y su estado de energía para la gestión del ciclo de vida del nodo.
Balanceo de carga — Aprovisiona reglas NAT/traducción de VergeOS VNet para
type: LoadBalancerServicios. Asigna IPs de un grupo configurable y mapea automáticamente los puertos del servicio a los puertos de nodo.
Cómo funciona el ciclo de vida de los nodos
La CCM implementa la InstancesV2 interfaz:
InstanceMetadata — Resuelve un nodo de Kubernetes a una VM de VergeOS (por ID de proveedor o nombre), luego devuelve el ID de proveedor (
vergeos://<vm-id>), el tipo de instancia (<cpu>cpu-<ram>mb), y las direcciones IP internas de las NIC de la VMInstanceExists — Comprueba si la VM subyacente aún existe en VergeOS
InstanceShutdown — Indica si la VM está apagada
Cómo funciona el balanceo de carga
La CCM implementa la LoadBalancer interfaz usando reglas de VergeOS VNet:
EnsureLoadBalancer — Asigna una IP del grupo y luego crea una regla NAT de VNet por cada puerto del servicio. Las reglas traducen
<allocated-ip>:<port>en<node-ips>:<nodePort>. Llama aApplyRulespara activar.UpdateLoadBalancer — Actualiza las IP de destino en las reglas existentes cuando cambian los nodos
EnsureLoadBalancerDeleted — Elimina todas las reglas de VNet para el servicio y aplica el cambio
Instalación
La CCM se distribuye como un chart de Helm junto con el controlador CSI. Instálela mediante la CLI de Helm o a través de la interfaz de usuario de Rancher Apps en el clúster descendente. Consulte Documentación y recursos a continuación para detalles del chart y opciones de configuración.
Escalador automático de clúster
El escalador automático de clúster de Kubernetes funciona con clústeres respaldados por VergeOS aprovisionados mediante Rancher. Ajusta automáticamente el número de nodos en un pool según las solicitudes de recursos pendientes de los pods: escala hacia arriba cuando los pods no pueden programarse y hacia abajo cuando los nodos están infrautilizados. Consulte Documentación y recursos a continuación para el enlace al proyecto upstream.
Cómo funciona
El autoscaler utiliza la API de Rancher para gestionar los pools de nodos:
Escalar hacia arriba — Cuando los pods quedan pendientes por recursos insuficientes, el autoscaler aumenta el tamaño del pool de nodos. Rancher luego usa el controlador Docker Machine para aprovisionar nuevas VMs de VergeOS.
Escalar hacia abajo — Cuando los nodos están infrautilizados durante un período configurable, el autoscaler los cordona, vacía y elimina. El controlador elimina las VMs de VergeOS subyacentes.
Solicitudes de recursos
El autoscaler toma decisiones de escalado basándose en las solicitudes de recursos de los pods, no en el uso real. Asegúrese de que las cargas de trabajo definan requests en sus especificaciones de pod para un comportamiento de escalado preciso.
Resumen
VergeOS proporciona tres componentes de Kubernetes que funcionan junto con cualquier clúster que se ejecute en VMs de VergeOS:
Controlador CSI — volúmenes persistentes mediante VergeOS NAS (ReadWriteMany) y almacenamiento en bloque vSAN (ReadWriteOnce)
Cloud Controller Manager — gestión del ciclo de vida de nodos y
LoadBalancerServicios respaldados por reglas de VergeOS VNetEscalador automático de clúster — escalado automático de pools de nodos para clústeres aprovisionados por Rancher
Todos los componentes se distribuyen como charts de Helm desde el verge-io repositorio y pueden instalarse mediante la CLI de Helm o la interfaz de usuario de Rancher Apps.
Siguientes pasos
¿Es nuevo en Rancher en VergeOS? Consulte la guía de Integración con Rancher para el aprovisionamiento de clústeres, la preparación de VMs plantilla y la configuración del controlador de nodos.
¿Ya tiene un clúster en ejecución? Añada el repositorio de Helm y explore los charts disponibles:
Visite los repositorios del proyecto a continuación para valores de chart, referencia de configuración y notas de la versión.
Documentación y recursos
Controlador de la interfaz de almacenamiento de contenedores
Cloud Controller Manager
Repositorio de charts de Helm
Escalador automático de clúster upstream
Soporte
Si encuentra problemas o tiene solicitudes de funciones, abra un issue en el repositorio de GitHub correspondiente:
Última actualización
¿Te fue útil?