<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Pipelines on lo0 — Blog Técnico</title><link>https://blog.lo0.es/tags/pipelines/</link><description>Recent content in Pipelines on lo0 — Blog Técnico</description><generator>Hugo -- gohugo.io</generator><language>es</language><lastBuildDate>Mon, 31 Aug 2026 09:30:00 +0200</lastBuildDate><atom:link href="https://blog.lo0.es/tags/pipelines/index.xml" rel="self" type="application/rss+xml"/><item><title>Kubeflow a fondo: qué piezas valen la pena en una plataforma LLM on-premise y cuáles ya tienes</title><link>https://blog.lo0.es/posts/kubeflow-a-fondo-plataforma-ml-on-premise/</link><pubDate>Mon, 31 Aug 2026 09:30:00 +0200</pubDate><guid>https://blog.lo0.es/posts/kubeflow-a-fondo-plataforma-ml-on-premise/</guid><description>&lt;blockquote>
&lt;p>Segundo artículo de la tanda de plataforma y autoservicio, después de &lt;a href="https://blog.lo0.es/posts/backstage-portal-autoservicio-plataforma-llm/">Backstage&lt;/a> y antes de &lt;a href="https://blog.lo0.es/posts/knative-scale-to-zero-inferencia-llm/">Knative&lt;/a>. Aquí la pregunta no es qué es Kubeflow, sino qué partes de Kubeflow siguen teniendo sentido cuando ya has montado media plataforma por tu cuenta.&lt;/p>
&lt;/blockquote>
&lt;h2 id="tldr">TL;DR&lt;/h2>
&lt;p>Kubeflow graduó en la CNCF el 17 de agosto de 2026, y esa noticia esconde la importante: ya no es una plataforma monolítica, es un paraguas de subproyectos independientes, cada uno con su repositorio, su versión y su vida propia. Eso cambia por completo cómo hay que evaluarlo. La pregunta de 2020, ¿instalo Kubeflow?, se ha convertido en la de 2026, ¿qué pieza de Kubeflow instalo, y a costa de qué?&lt;/p>
&lt;p>Para una plataforma que ya tiene RKE2, vLLM, &lt;a href="https://blog.lo0.es/posts/kserve-open-inference-protocol-plano-control/">KServe&lt;/a>, &lt;a href="https://blog.lo0.es/posts/gitops-stack-inferencia-llm-flux/">Flux&lt;/a> y &lt;a href="https://blog.lo0.es/posts/volcano-vs-kueue-scheduling-gpu-kubernetes/">Volcano o Kueue&lt;/a>, la respuesta honesta es que Kubeflow entero &lt;strong>duplica&lt;/strong> casi todo lo que ya tienes. KServe ya no vive bajo Kubeflow: se fue, y desde noviembre de 2025 es proyecto CNCF por su cuenta, así que quien sirve modelos con KServe no necesita Kubeflow para servir. El Trainer se apoya en Volcano y Kueue, no los reemplaza. Y el manifiesto completo arrastra Istio, Dex y cert-manager como dependencias duras que chocan con lo que ya operas. Lo único que puede valer la pena instalar suelto es Pipelines, como orquestador de flujos de datos y entrenamiento, y quizá el Trainer por sus plantillas de fine-tuning. El resto, o ya lo tienes, o no lo necesitas.&lt;/p>
&lt;h2 id="la-analogía-el-hipermercado-y-la-tienda-especializada">La analogía: el hipermercado y la tienda especializada&lt;/h2>
&lt;p>Kubeflow nació como un hipermercado: un solo edificio con todo lo que un equipo de ML podía necesitar, desde los cuadernos hasta el servidor de inferencia, pasando por los pipelines y el ajuste de hiperparámetros. Tenía sentido en 2019, cuando montar cada pieza por separado era un proyecto en sí mismo y no había estándares.&lt;/p>
&lt;p>En 2026 el hipermercado se ha reconvertido en una calle de tiendas especializadas. La sección de carnicería, KServe, se independizó, abrió su propio local y le va mejor sola. La de pescadería, el Trainer, ahora depende del mercado central de al lado, Volcano y Kueue, en vez de tener su propia cámara. Y el edificio común sigue exigiendo que pongas su instalación eléctrica, su fontanería y su sistema de seguridad (Istio, cert-manager, Dex) aunque tú ya tengas los tuyos.&lt;/p>
&lt;p>Quien llega hoy con la nevera medio llena, que es el caso de cualquiera con una plataforma en marcha, no necesita el hipermercado entero. Necesita saber a qué tienda entrar por lo que le falta, y evitar comprar dos veces lo que ya tiene en casa.&lt;/p>
&lt;h2 id="qué-es-kubeflow-en-2026">Qué es Kubeflow en 2026&lt;/h2>
&lt;p>Kubeflow lo creó Google en 2017 y graduó en la CNCF el 17 de agosto de 2026, alcanzando el nivel máximo junto a Kubernetes o Prometheus. Las cifras de la graduación son serias: más de 6.600 contribuidores de más de mil organizaciones, y adoptantes como Bloomberg, NVIDIA, Red Hat o Spotify.&lt;/p>
&lt;p>El cambio estructural es el que importa para decidir. La distribución completa, la &lt;em>Kubeflow Community Distribution&lt;/em>, se numera por año y mes (la vigente es la 26.03, de marzo de 2026, con cadencia semestral), pero &lt;strong>cada componente es ya un subproyecto con su propio repositorio y su propio ciclo&lt;/strong>, usable de forma independiente. La distribución solo los empaqueta. Eso significa que &amp;ldquo;instalar Kubeflow&amp;rdquo; ya no es una decisión atómica: es una lista de la compra.&lt;/p>
&lt;h2 id="componente-a-componente">Componente a componente&lt;/h2>
&lt;h3 id="kubeflow-pipelines-la-pieza-que-quizá-sí-quieras">Kubeflow Pipelines: la pieza que quizá sí quieras&lt;/h3>
&lt;p>Pipelines orquesta flujos de trabajo de ML en contenedores. Se escriben en Python con su SDK, que compila a una representación intermedia en YAML para que sean portables, y por debajo se ejecutan sobre &lt;strong>Argo Workflows&lt;/strong>. Es la pieza con más posibilidades de aportar valor a una plataforma existente: un flujo de &amp;ldquo;ingesta, embeddings, fine-tuning, evaluación, despliegue&amp;rdquo; es exactamente lo que hace falta para operar RAG y adapters de forma repetible.&lt;/p>
&lt;p>La letra pequeña tiene dos partes. La primera, que si ya usas Argo Workflows a pelo, Pipelines añade una capa de SDK, interfaz y metadatos &lt;strong>sobre el mismo motor&lt;/strong>: no trae un planificador nuevo, trae el modelo de componentes tipados y la interfaz de ejecuciones. La segunda, que su sistema de metadatos y linaje, MLMD, está &lt;strong>en proceso de eliminación&lt;/strong> del propio Pipelines, así que no conviene construir la trazabilidad de la plataforma sobre esa pieza concreta.&lt;/p>
&lt;h3 id="kubeflow-trainer-se-apoya-en-tu-planificador-no-lo-sustituye">Kubeflow Trainer: se apoya en tu planificador, no lo sustituye&lt;/h3>
&lt;p>El antiguo Training Operator, el de &lt;code>PyTorchJob&lt;/code> y &lt;code>TFJob&lt;/code>, se ha reescrito como &lt;strong>Kubeflow Trainer&lt;/strong>, con una única API &lt;code>TrainJob&lt;/code> que unifica todos los frameworks. La versión 2.2 se posiciona explícitamente para entrenamiento distribuido y &lt;strong>fine-tuning de LLM&lt;/strong>, con soporte de PyTorch, DeepSpeed, HuggingFace y compañía.&lt;/p>
&lt;p>Aquí hay que corregir una expectativa común. El Trainer &lt;strong>no reemplaza a Volcano ni a Kueue&lt;/strong>: se apoya en ellos. El &lt;code>TrainJob&lt;/code> lleva un campo &lt;code>podGroupPolicy&lt;/code> que crea automáticamente los &lt;code>PodGroup&lt;/code> de Volcano para el &lt;em>gang scheduling&lt;/em>, y se integra con las colas de Kueue. Si ya montaste ese planificador, como vimos en su artículo, el Trainer añade la abstracción &lt;code>TrainJob&lt;/code> y unas plantillas de fine-tuning por encima de lo que ya tienes, no una capa de planificación nueva. Puede valer la pena por las plantillas; no por el planificador.&lt;/p>
&lt;h3 id="katib-relevante-solo-a-medias">Katib: relevante solo a medias&lt;/h3>
&lt;p>Katib hace AutoML nativo de Kubernetes: optimización de hiperparámetros con algoritmos como optimización bayesiana, TPE o Hyperband, más búsqueda de arquitecturas. En la era de los LLM se ha reposicionado, con documentación oficial para ajustar hiperparámetros de fine-tuning y hasta para afinar pipelines de RAG.&lt;/p>
&lt;p>La lectura práctica es tibia. La búsqueda de arquitecturas es irrelevante para quien hace LoRA y RAG. La optimización de hiperparámetros sí puede servir para barridos de tasa de aprendizaje o de rango de LoRA, pero compite con hacerlo desde el propio SDK del &lt;a href="https://blog.lo0.es/posts/qlora-runbook-fine-tuning-serving/">runbook de QLoRA&lt;/a> o con Ray Tune, y rara vez justifica arrastrar Katib solo por eso.&lt;/p>
&lt;h3 id="kserve-la-pieza-que-ya-no-está-en-kubeflow">KServe: la pieza que ya no está en Kubeflow&lt;/h3>
&lt;p>Este es el dato que decide media evaluación. &lt;strong>KServe se fue de Kubeflow.&lt;/strong> Nació dentro del proyecto en 2019, se donó a la Linux Foundation en 2022, se renombró de KFServing a KServe y graduó de Kubeflow ese mismo año, y desde noviembre de 2025 es &lt;strong>proyecto incubado de la CNCF por su cuenta&lt;/strong>. En la taxonomía de 2026 aparece como proyecto del ecosistema, externo, no como componente del núcleo.&lt;/p>
&lt;p>La consecuencia es directa: &lt;strong>quien ya sirve con KServe no necesita Kubeflow para servir&lt;/strong>. Y KServe es justo donde está la acción de LLM: su versión 0.15 reforzó el backend de vLLM e introdujo un recurso &lt;code>LLMInferenceService&lt;/code> con serving desagregado, caché de prefijos, autoescalado por variante y APIs compatibles con OpenAI. Si tu capa de serving es vLLM sobre KServe, esa capa ya la tienes completa y Kubeflow no le añade nada.&lt;/p>
&lt;h3 id="model-registry-notebooks-y-el-resto">Model Registry, Notebooks y el resto&lt;/h3>
&lt;p>El &lt;strong>Model Registry&lt;/strong>, reorganizado ahora bajo el nombre de Kubeflow Hub, es un índice de modelos, versiones y metadatos. Guarda punteros y estados, no los bytes. Frente a MLflow, le falta el seguimiento de experimentos y métricas que es el fuerte de MLflow, hasta el punto de que las guías recomiendan combinarlos en vez de sustituir uno por otro; y frente a un registro OCI, no empaqueta el binario, que sigue viviendo donde lo pusiste. Es un componente todavía joven, por debajo de la versión 1.0.&lt;/p>
&lt;p>Los &lt;strong>Notebooks&lt;/strong> conviven en dos versiones, la 1 estable y una 2 rediseñada sobre CRDs que sigue en alfa. El &lt;strong>Spark Operator&lt;/strong> continúa en el núcleo; &lt;strong>Feast&lt;/strong>, en cambio, ha salido del núcleo y hoy es proyecto del ecosistema, un matiz que hay que tener claro antes de contar con él.&lt;/p>
&lt;h3 id="el-multi-tenancy-potente-y-atado-a-istio">El multi-tenancy: potente y atado a Istio&lt;/h3>
&lt;p>El aislamiento entre equipos se hace con &lt;strong>Profiles&lt;/strong>, un CRD que envuelve un namespace y le pone RoleBindings, ServiceAccounts y políticas de autorización de Istio que validan una cabecera de identidad derivada de OIDC. Es un modelo completo, pero tiene un talón de Aquiles: &lt;strong>depende por entero del sidecar de Istio y de esa cabecera&lt;/strong>. Si el tráfico esquiva la malla o alguien falsifica la cabecera, el aislamiento se rompe, y toda la seguridad multi-tenant queda acoplada a Istio, lo que choca de frente si ya operas otra malla o ningún &lt;em>service mesh&lt;/em>.&lt;/p>
&lt;h2 id="el-coste-de-instalarlo-entero">El coste de instalarlo entero&lt;/h2>
&lt;p>Aquí está la razón principal para no instalar la distribución completa sobre una plataforma existente. El manifiesto de la versión 26.03 arrastra como &lt;strong>dependencias duras&lt;/strong>: Istio, cert-manager, Dex para OIDC, OAuth2-Proxy, y Knative Serving y Eventing para KServe. Recomienda 16 GB de RAM y 8 vCPU como mínimo, y el agregado de todos los componentes ronda los 4,4 núcleos de CPU y 12 GB de memoria solo para el plano de control.&lt;/p>
&lt;p>El propio proyecto reconoce el problema. Hay un hilo abierto en su repositorio, titulado sin rodeos &amp;ldquo;opiniones de la comunidad sobre la complejidad de Kubeflow&amp;rdquo;, donde se admite que Kubeflow prácticamente obliga a un cluster dedicado por las suposiciones que hace sobre qué hay instalado, que Istio y Dex deberían ser intercambiables y no dependencias fijas, y que se echa en falta un Helm más ligero que instale solo lo necesario. Para quien ya opera cert-manager, un ingress y GitOps con Flux, el manifiesto completo no convive: duplica y pisa la infraestructura base.&lt;/p>
&lt;h2 id="kubeflow-frente-a-las-alternativas">Kubeflow frente a las alternativas&lt;/h2>
&lt;p>El campo es amplio y casi toda la literatura comparativa la escriben proveedores con producto propio, así que hay que leerla con pinzas. Con esa cautela:&lt;/p>
&lt;p>&lt;strong>Argo Workflows a pelo&lt;/strong> es el motor que Pipelines usa por debajo; si solo necesitas grafos de contenedores, Pipelines es sobrecarga. &lt;strong>MLflow&lt;/strong> es fuerte en seguimiento de experimentos y registro ligero, se instala en minutos, y no orquesta entrenamiento distribuido: es complementario, y de hecho lo usamos en el artículo de &lt;a href="https://blog.lo0.es/posts/prompt-versioning-langfuse-mlflow/">versionado de prompts&lt;/a>. &lt;strong>Flyte&lt;/strong> es un orquestador tipado que muchos perciben como más ligero de operar que Kubeflow completo. Y &lt;strong>Ray sobre Kubernetes&lt;/strong> es el competidor más serio para cargas de LLM, porque con una sola runtime cubre entrenamiento, servicio y ajuste, solapando a la vez con el Trainer, Katib y KServe.&lt;/p>
&lt;p>Donde Kubeflow gana es en amplitud y en gobernanza: un paraguas graduado por la CNCF con adopción de grandes empresas. Donde pierde es en peso operativo, en dependencias duras, y en que sus mejores piezas ya son proyectos independientes que no requieren el resto.&lt;/p>
&lt;h2 id="encaje-real-con-cargas-de-llm">Encaje real con cargas de LLM&lt;/h2>
&lt;p>El proyecto se ha movido hacia GenAI, y hay que reconocerlo: hay un SDK con plantillas de fine-tuning de LLM, el Trainer añade soporte de métodos de post-entrenamiento por refuerzo, y han aparecido piezas nuevas orientadas a agentes. No es marketing vacío, hay trabajo real.&lt;/p>
&lt;p>Pero la pregunta para una plataforma concreta no es si Kubeflow hace LLM: es qué parte no dupliqué ya. Sobre un stack de RKE2, vLLM, KServe, Flux y Volcano o Kueue, el balance queda así:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Componente&lt;/th>
&lt;th>¿Aporta algo nuevo a tu stack?&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>KServe&lt;/td>
&lt;td>No: ya lo tienes, y ya no es de Kubeflow&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Trainer&lt;/td>
&lt;td>Solo las plantillas de fine-tuning; el planificador ya lo tienes&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Katib&lt;/td>
&lt;td>Marginal: barridos de HP de LoRA, poco más&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Pipelines&lt;/td>
&lt;td>Puede que sí, como orquestador de flujos, pero corre sobre Argo&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Model Registry&lt;/td>
&lt;td>Opcional: compite con MLflow y con tu registro OCI&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Notebooks&lt;/td>
&lt;td>Según lo que uses hoy para cuadernos&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Multi-tenancy&lt;/td>
&lt;td>No, si ya aíslas por namespace sin atar todo a Istio&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="trampas-operativas-y-escepticismo-honesto">Trampas operativas y escepticismo honesto&lt;/h2>
&lt;p>&lt;strong>No instales el manifiesto completo sobre una plataforma que ya funciona.&lt;/strong> Vas a duplicar Istio, cert-manager y el resto, y a librar una guerra de dependencias que no tiene premio. Si algo de Kubeflow te interesa, instálalo como subproyecto suelto.&lt;/p>
&lt;p>&lt;strong>KServe no es Kubeflow.&lt;/strong> Es el error de categoría más común de 2026. Si alguien justifica montar Kubeflow entero &amp;ldquo;para servir modelos&amp;rdquo;, ya sabes que no ha mirado que KServe se fue hace tiempo y vive solo.&lt;/p>
&lt;p>&lt;strong>El Trainer no te ahorra el planificador.&lt;/strong> Necesita Volcano o Kueue por debajo. Si esperabas que resolviera el &lt;em>gang scheduling&lt;/em> de las GPU por sí mismo, no lo hace.&lt;/p>
&lt;p>&lt;strong>El multi-tenancy te ata a Istio.&lt;/strong> Antes de adoptar Profiles, pregúntate si quieres que la seguridad entre equipos dependa de una malla concreta. Si ya aíslas bien por namespace y RBAC, quizá no necesites esa capa.&lt;/p>
&lt;p>&lt;strong>MLMD está de salida.&lt;/strong> No construyas la trazabilidad de tus pipelines sobre el sistema de metadatos que el propio proyecto está retirando.&lt;/p>
&lt;h2 id="para-una-factoría-de-inferencia">Para una factoría de inferencia&lt;/h2>
&lt;p>La conclusión es cómoda de aplicar. Kubeflow en 2026 no es una decisión de sí o no, es un menú del que se pide a la carta. Sobre una plataforma que ya sirve con KServe, planifica con Volcano y despliega con Flux, la carta se reduce mucho.&lt;/p>
&lt;p>Si necesitas orquestar flujos de datos y entrenamiento de forma repetible, y no quieres montar Argo Workflows a pelo con su ergonomía, &lt;strong>Pipelines&lt;/strong> es la pieza que vale la pena evaluar, instalada suelta. Si haces fine-tuning distribuido con frecuencia y quieres una abstracción uniforme por encima de tu planificador, el &lt;strong>Trainer&lt;/strong> puede ahorrarte plantillas, sabiendo que se apoya en el Volcano que ya tienes. Todo lo demás, o lo tienes, o lo cubre mejor una pieza especializada.&lt;/p>
&lt;p>El error caro sería instalar el hipermercado entero para comprar el pan. Kubeflow dejó de ser eso; trátalo como lo que es, una calle de tiendas, y entra solo en la que te falta. La siguiente pieza de esta tanda, &lt;a href="https://blog.lo0.es/posts/knative-scale-to-zero-inferencia-llm/">Knative&lt;/a>, es justamente una de esas tiendas especializadas, la que decide si apagar la GPU cuando nadie la usa sale a cuenta o te cuesta caro.&lt;/p>
&lt;h2 id="ver-también">Ver también&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://blog.lo0.es/posts/kserve-open-inference-protocol-plano-control/">KServe y el Open Inference Protocol&lt;/a> — la pieza que se fue de Kubeflow y sostiene tu serving.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/posts/volcano-vs-kueue-scheduling-gpu-kubernetes/">Volcano y Kueue: gang scheduling y cuotas de GPU&lt;/a> — el planificador sobre el que se apoya el Trainer.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/posts/qlora-runbook-fine-tuning-serving/">Runbook QLoRA: del dataset al adapter servido&lt;/a> — el fine-tuning que Pipelines y Trainer orquestan.&lt;/li>
&lt;li>&lt;a href="https://blog.lo0.es/posts/backstage-portal-autoservicio-plataforma-llm/">Backstage como portal de autoservicio&lt;/a> — el escaparate que enseña todo esto a los equipos.&lt;/li>
&lt;/ul>
&lt;h2 id="fuentes">Fuentes&lt;/h2>
&lt;ul>
&lt;li>CNCF, &lt;em>CNCF announces Kubeflow&amp;rsquo;s graduation&lt;/em> — &lt;a href="https://www.cncf.io/announcements/2026/08/17/cncf-announces-kubeflows-graduation-solidifying-the-standard-for-cloud-native-ai-operations/">https://www.cncf.io/announcements/2026/08/17/cncf-announces-kubeflows-graduation-solidifying-the-standard-for-cloud-native-ai-operations/&lt;/a>&lt;/li>
&lt;li>CNCF, &lt;em>Kubeflow unveils new cloud native innovations to supercharge AI&lt;/em> — &lt;a href="https://www.cncf.io/blog/2026/07/28/kubeflow-unveils-new-cloud-native-innovations-to-supercharge-ai/">https://www.cncf.io/blog/2026/07/28/kubeflow-unveils-new-cloud-native-innovations-to-supercharge-ai/&lt;/a>&lt;/li>
&lt;li>CNCF, &lt;em>KServe becomes a CNCF incubating project&lt;/em> — &lt;a href="https://www.cncf.io/blog/2025/11/11/kserve-becomes-a-cncf-incubating-project/">https://www.cncf.io/blog/2025/11/11/kserve-becomes-a-cncf-incubating-project/&lt;/a>&lt;/li>
&lt;li>Kubeflow Docs, &lt;em>Introduction / components&lt;/em> — &lt;a href="https://www.kubeflow.org/docs/started/introduction/">https://www.kubeflow.org/docs/started/introduction/&lt;/a>&lt;/li>
&lt;li>Kubeflow Docs, &lt;em>Pipelines overview&lt;/em> — &lt;a href="https://www.kubeflow.org/docs/components/pipelines/overview/">https://www.kubeflow.org/docs/components/pipelines/overview/&lt;/a>&lt;/li>
&lt;li>Kubeflow Trainer Docs, &lt;em>Volcano gang scheduling and Kueue&lt;/em> — &lt;a href="https://trainer.kubeflow.org/en/latest/operator-guides/job-scheduling/volcano.html">https://trainer.kubeflow.org/en/latest/operator-guides/job-scheduling/volcano.html&lt;/a>&lt;/li>
&lt;li>Kubeflow Docs, &lt;em>Migrating to Kubeflow Trainer v2&lt;/em> — &lt;a href="https://www.kubeflow.org/docs/components/trainer/operator-guides/migration/">https://www.kubeflow.org/docs/components/trainer/operator-guides/migration/&lt;/a>&lt;/li>
&lt;li>Kubeflow Docs, &lt;em>Katib overview&lt;/em> — &lt;a href="https://www.kubeflow.org/docs/components/katib/overview/">https://www.kubeflow.org/docs/components/katib/overview/&lt;/a>&lt;/li>
&lt;li>Kubeflow Docs, &lt;em>Hyperparameter optimization for LLM fine-tuning&lt;/em> — &lt;a href="https://www.kubeflow.org/docs/components/katib/user-guides/llm-hp-optimization/">https://www.kubeflow.org/docs/components/katib/user-guides/llm-hp-optimization/&lt;/a>&lt;/li>
&lt;li>Kubeflow Docs, &lt;em>Model Registry overview&lt;/em> — &lt;a href="https://www.kubeflow.org/docs/components/model-registry/overview/">https://www.kubeflow.org/docs/components/model-registry/overview/&lt;/a>&lt;/li>
&lt;li>Kubeflow Docs, &lt;em>Multi-tenancy design&lt;/em> — &lt;a href="https://www.kubeflow.org/docs/concepts/multi-tenancy/design/">https://www.kubeflow.org/docs/concepts/multi-tenancy/design/&lt;/a>&lt;/li>
&lt;li>GitHub, &lt;em>kubeflow/manifests (dependencias y recursos)&lt;/em> — &lt;a href="https://github.com/kubeflow/manifests">https://github.com/kubeflow/manifests&lt;/a>&lt;/li>
&lt;li>GitHub, &lt;em>kubeflow/manifests #2451: community feedback on complexity&lt;/em> — &lt;a href="https://github.com/kubeflow/manifests/issues/2451">https://github.com/kubeflow/manifests/issues/2451&lt;/a>&lt;/li>
&lt;li>InfoQ, &lt;em>Kubeflow expands AI capabilities as CNCF graduation nears&lt;/em> — &lt;a href="https://www.infoq.com/news/2026/08/kubeflow/">https://www.infoq.com/news/2026/08/kubeflow/&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>