Pod affinity y anti-affinity en Kubernetes

| Última modificación: 18 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Los pods en Kubernetes son las unidades de ejecución más básicas de la plataforma, que tienen la capacidad de incluir uno o varios contenedores para mejorar el funcionamiento del uso compartido de recursos. Los pods cuentan también con la herramienta de pod affinity y anti-affinity en Kubernetes, que permite establecer un conjunto de reglas relacionados con la ubicación de los pods frente a otros pods. Esta opción también se conoce como afinidad y antiafinidad de pods y destaca como una de las más importantes para el manejo de estos recursos. Por ello, en este post, te enseñaremos qué es y cuáles son las características y usos de esta herramienta.

¿Qué es pod affinity y anti-affinity en Kubernetes?

La opciones de pod affinity y anti-affinity en Kubernetes (o afinidad y antiafinidad de pods) se definen como herramientas encargadas de establecer las reglas que deben cumplirse en los recursos de pods, antes de que estos se asignen a los nodos de la plataforma.

De manera que este conjunto de reglas se definien a través de las labels o etiquetas personalizadas de los recursos de nodos, así como los selectores de etiquetas que se han especificado en los pods. Esto implica que las opciones de pod affinity y anti-affinity contribuyen a que un pod determinado tenga la capacidad de especificar una afinidad o una antiafinidad con respecto a otro grupo de pods en el sistema.

Características de pod affinity y anti-affinity en Kubernetes

Las herramientas de pod affinity y anti-affinity en Kubernetes cuentan con una serie de propiedades y elementos que las caracterizan y permiten su funcionamiento dentro de la plataforma y sus labores relacionadas con el manejo de los recursos de pods.

Sin embargo, debes tener en cuenta que, aunque la afinidad y antiafinidad de pods suelen ser términos trabajados de manera simultánea, tienen sus características particulares que los definen y marcan la diferencia entre una opción y la otra. Así ,por ejemplo, estas opciones se pueden definir de la siguiente manera:

Pod affinity

La afinidad de pods o pod affinity puede definirse como la herramienta que permite que se le indique al programador que debe ubicar un nuevo recurso de pod en el interior de un mismo nodo donde estén otros pods, en el caso de que el selector de las etiquetas del nuevo pod coincida con la etiqueta del pod actual. Esto quiere decir que la opción de afinidad permite la asignación de pods en los nodos de Kubernetes.

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

También debemos agregar que, para las afinidades de pods, existen dos tipos de reglas, denominadas reglas requeridas y reglas preferidas:

  • Las reglas requeridas son aquellas que resultan necesarias de manera previa a la programación de un pod en nodo, para que este proceso pueda llevarse a cabo de manera exitosa.
  • Las reglas preferidas el scheduler o programador intenta cumplirlas, pero no garantiza que puedan ejecutarse en todos los casos.

Pod anti-affinity

Continuando con pod affinity y anti-affinity en Kubernetes, en lo referido a la antiafinidad se puede decir que se encarga de la liberación de los recursos de pods que estén siendo ejecutados en el nodo determinado, de acuerdo con las restricciones establecidas.

¿Cuál es el siguiente paso?

En este artículo has podido conocer qué son las opciones de pod affinity y anti-affinity en Kubernetes, así como sus características y usos más importantes dentro de la plataforma. Ahora, si has llegado hasta aquí, es porque te interesa seguir aprendiendo acerca de esta y otras herramientas del sector tecnológico. Por eso, no dudes en dar el siguiente paso en tu proceso de aprendizaje e inscríbete en el DevOps & Cloud Computing Full Stack Bootcamp.

Con este bootcamp, en menos de 6 meses podrás conocer, tanto de forma teórica como práctica, todo lo necesario para convertirte en un experto del mundo IT, al tiempo que destacas frente a tus competidores. ¡Anímate a continuar con tu proceso de formación y matricúlate en este bootcamp para no dejar de aprender!

Xoán Mallón

Senior DevOps Engineer en Zscaler & Coordinador del Bootcamp DevOps & Cloud Computing.

Posts más leídos

¡CONVOCATORIA ABIERTA!

DevOps & Cloud Computing

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado