Lanzamiento oficial de Volcano Community v1.8.0

Se lanza oficialmente la versión Volcano Community v1.8.0 , que agrega las siguientes características nuevas:

  • Admite programación y aislamiento de vGPU

  • Admite la preferencia de vGPU y recursos definidos por el usuario

  • Se agregó el motor de orquestación de flujo de trabajo JobFlow.

  • La programación y reprogramación conscientes de la carga de nodos admiten diversos sistemas de monitoreo

  • Optimizar la capacidad de Volcano para programar servicios generales

  • Optimice la publicación y el archivo del paquete de gráficos de volcanes.

Admite programación y aislamiento de vGPU

Desde la explosión de ChatGPT, la investigación y el desarrollo de grandes modelos de IA han surgido en un flujo interminable, y también se han lanzado uno tras otro diferentes tipos de grandes modelos de IA. Debido a que sus enormes tareas de entrenamiento requieren una gran potencia informática, el suministro La potencia informática con GPU como núcleo se ha convertido en la clave para el desarrollo de la infraestructura de la industria de modelos grandes. En escenarios de uso reales, los usuarios tienen puntos débiles como la baja utilización de recursos y la asignación inflexible de recursos en el uso de recursos de GPU. Deben comprar una gran cantidad de potencia informática heterogénea redundante para satisfacer las necesidades comerciales, y la potencia informática heterogénea en sí es costosa. El desarrollo de las empresas ha supuesto una gran carga.

A partir de la versión 1.8, Volcano proporciona un marco general abstracto para dispositivos compartibles (GPU, NPU, FPGA...), los desarrolladores pueden personalizar múltiples tipos de dispositivos compartidos basados ​​en este marco; actualmente, Volcano se ha implementado en base a este marco de virtualización de GPU. características, soporte para multiplexación de dispositivos GPU, aislamiento de recursos y otras capacidades, los detalles son los siguientes:

  • Compartir GPU: cada tarea puede solicitar algunos recursos de una tarjeta GPU, y la tarjeta GPU se puede compartir entre varias tareas.

  • Control de la memoria del dispositivo: la GPU se puede asignar según la memoria del dispositivo (por ejemplo: 3000 M) o en proporción (por ejemplo: 50 %) para lograr la capacidad de aislamiento de recursos de virtualización de la GPU.

Para obtener más información sobre vGPU, consulte:

Admite la preferencia de vGPU y recursos definidos por el usuario

Actualmente, Volcano admite CPU, memoria y otras funciones básicas de preferencia de recursos. Para recursos de GPU y complementos de programación y desarrollo secundario de los usuarios basados ​​en el marco de Volcano, y recursos autoadministrados (como: NPU, recursos de red, etc.) , todavía no admite bien las capacidades de preferencia.

En la versión 1.8, Volcano refactorizó el procesamiento relacionado con el filtrado de nodos (función de devolución de llamada PredicateFn) y agregó un tipo de Estado al resultado devuelto para identificar si el nodo actual cumple con las condiciones de entrega del trabajo en escenarios como programación y preferencia. La función de preferencia de GPU se lanzó en función del marco optimizado y el complemento de programación para el desarrollo secundario basado en Volcano se puede adaptar y actualizar de acuerdo con los escenarios comerciales.

Para obtener más información sobre cómo admitir la preferencia extendida de recursos, consulte: https://github.com/volcano-sh/volcano/pull/2916

Se agregó el motor de orquestación de flujo de trabajo JobFlow.

El motor de orquestación del flujo de trabajo se usa ampliamente en informática de alto rendimiento, biomedicina de IA, procesamiento de imágenes, belleza, AGI de juegos, informática científica y otros escenarios para ayudar a los usuarios a simplificar la gestión del paralelismo y las dependencias de múltiples tareas, y mejorar en gran medida la eficiencia informática general.

JobFlow es un motor liviano de orquestación de flujo de tareas que se centra en la orquestación de trabajos de Volcano. Proporciona a Volcano sondeos de trabajos, dependencias de finalización de trabajos, tolerancia a la tasa de fallas de trabajos y otros diversos tipos de dependencias de trabajos, y admite primitivas de control de procesos complejos. Las capacidades específicas son las siguientes: sigue:

  • Admite la gestión de trabajos a gran escala y la orquestación de flujos de tareas complejos

  • Admite consultas en tiempo real del estado de ejecución y el progreso de las tareas de todos los trabajos asociados

  • Admite la operación automática de trabajos y el inicio programado para liberar los costos laborales

  • Se pueden establecer múltiples estrategias de acción para diferentes tareas y se pueden activar las acciones correspondientes cuando la tarea cumple ciertas condiciones, como reintentos de tiempo de espera, deriva de falla del nodo, etc.

La tarea de JobFlow que ejecuta la demostración es la siguiente:

Para obtener más información sobre JobFlow, consulte: https://github.com/volcano-sh/volcano/blob/master/docs/design/jobflow/README.md

La programación y reprogramación conscientes de la carga de nodos admiten diversos sistemas de monitoreo

El estado del clúster de Kubernetes cambia en tiempo real con la creación y finalización de tareas. En algunos escenarios (como: agregar y eliminar nodos, cambios en la afinidad de Pod y Nodo, cambios dinámicos en el ciclo de vida del trabajo, etc.) , La tasa de utilización de recursos entre los nodos del clúster es inconsistente. Equilibrio, cuellos de botella en el rendimiento de los nodos, problemas fuera de línea y otros problemas. En este momento, la programación y reprogramación basada en la carga real puede ayudarnos a resolver los problemas anteriores.

Antes de la versión 1.8 de Volcano, la adquisición de índices de programación y reprogramación de carga real solo era compatible con Prometheus. A partir de la versión 1.8, Volcano optimiza el marco de adquisición de índices de monitoreo, agrega soporte para el sistema de monitoreo ElasticSearch y admite un acoplamiento fluido con una pequeña carga de trabajo de adaptaciónMás sistemas de monitoreo de tipos.

Para obtener más información sobre la compatibilidad con múltiples sistemas de monitoreo, consulte:

Optimice la capacidad de Volcano para programar microservicios

Agregar el interruptor del complemento del programador predeterminado de Kubernetes

Volcano es un sistema de programación integrado unificado que no solo admite trabajos informáticos como AI y BigData, sino que también admite cargas de trabajo de microservicios y es compatible con complementos de programación como PodTopologySpread, VolumeZone, VolumeLimits, NodeAffinity y PodAffinity del programador predeterminado de Kubernetes. y capacidades del complemento de programación predeterminada de Kubernetes Habilitadas de forma predeterminada en Volcano.

Desde Volcano 1.8, el complemento de programación predeterminado de Kubernetes se puede seleccionar libremente para activarlo y desactivarlo a través del archivo de configuración, y todos están activados de forma predeterminada. Si elige desactivar algunos complementos, como desactivar PodTopologySpread y Complementos de VolumeZone, puede establecer los valores correspondientes en el complemento de predicado como falso, la configuración es la siguiente:

actions: "allocate, backfill, preempt"
tiers:
- plugins:
  - name: priority
  - name: gang
  - name: conformance
- plugins:
  - name: drf
  - name: predicates
    arguments:
      predicate.VolumeZoneEnable: false
      predicate.PodTopologySpreadEnable: false
  - name: proportion
  - name: nodeorder

Para obtener más información, consulte: https://github.com/volcano-sh/volcano/issues/2748

Compatibilidad mejorada con ClusterAutoscaler

En la plataforma Kubernetes, Volcano no solo se utiliza como programador para servicios informáticos por lotes, sino que también se utiliza cada vez más como programador para servicios generales. El escalado horizontal de nodos (Cluster Autoscaler) es una de las funciones principales de Kubernetes, que juega un papel importante para enfrentar el aumento del tráfico de usuarios y ahorrar costos operativos. Volcano optimiza la programación de trabajos y otra lógica relacionada, y mejora la compatibilidad e interacción con ClusterAutoscaler, principalmente en los dos aspectos siguientes:

  • El módulo que ingresa al estado de tubería en la fase de programación desencadena una expansión de capacidad en el tiempo
  • Los nodos candidatos se puntúan en gradientes para reducir el impacto de los pods que terminan en el clúster en la carga de programación y evitar que los pods entren en estados de canalización no válidos, lo que resulta en una expansión del clúster por error.

Para obtener más información, consulte:

Gestión refinada de los recursos de Node para mejorar la resiliencia

Cuando el nodo informa información anormal debido a algún motivo, como un complemento de dispositivo, y la cantidad total de ciertos recursos del nodo es menor que la cantidad de recursos asignados, Volcano considerará que los datos del nodo son inconsistentes, aislará el nodo y detendrá la programación. cualquier trabajo nuevo a la carga del nodo. En la versión 1.8, se lleva a cabo una gestión detallada de los recursos del nodo. Por ejemplo, cuando la capacidad total de recursos de GPU de un nodo es menor que los recursos asignados, los pods que solicitan recursos de GPU tienen prohibido reprogramarse en el nodo. que se aplican a recursos que no son de GPU seguirán siendo Permitir programación normal para este nodo.

Para obtener más información, consulte: https://github.com/volcano-sh/volcano/issues/2999

Optimice la publicación y el archivo del paquete de gráficos de volcanes.

Dado que Volcano se utiliza en entornos de producción y entornos de nube con cada vez más usuarios, las acciones de instalación simples y estándar son cruciales. Desde la versión 1.8, Volcano ha optimizado las acciones de publicación y archivo de paquetes de cartas, estandarizó el proceso de instalación y uso y completó la migración de las versiones históricas (v1.6, v1.7) al nuevo almacén de helm. El método de uso es el siguiente:

  • Agregar dirección del almacén de gráficos de volcanes
helm repo add volcano-sh https://volcano-sh.github.io/helm-chart
  • Consulta todas las versiones instalables de Volcano
helm search repo volcano -l
  • Instale la última versión de Volcano
helm install volcano volcano-sh/volcano -n volcano-system --create-namespace
  • Instale la versión especificada de Volcano, por ejemplo: 1.7.0
helm install volcano volcano-sh/volcano -n volcano-system --create-namespace --version 1.7.0

Para obtener más información sobre el paquete de gráficos de volcanes, consulte: https://github.com/volcano-sh/helm-charts

Supongo que te gusta

Origin www.oschina.net/news/254878/volcano-1-8-0-released
Recomendado
Clasificación