Sobes.tech
Middle+

¿Qué son affinity y anti-affinity en Kubernetes?

sobes.tech AI

Respuesta de la IA

Affinity y anti-affinity en Kubernetes son mecanismos que permiten gestionar la colocación de pods en los nodos del clúster teniendo en cuenta reglas y preferencias específicas.

  • Affinity (afinidad) establece reglas por las cuales los pods intentan colocarse cerca de otros pods o en nodos con ciertas etiquetas. Esto ayuda, por ejemplo, a agrupar servicios relacionados para reducir latencias.

  • Anti-affinity (anti-afinidad) en cambio, hace que los pods eviten colocarse cerca de ciertos pods o en nodos con etiquetas específicas. Esto es útil para aumentar la resistencia a fallos, asegurando que las copias de un mismo servicio no estén en el mismo nodo.

Ejemplo de uso de affinity en un manifiesto de Pod:

apiVersion: v1
kind: Pod
metadata:
  name: ejemplo-pod
spec:
  affinity:
    podAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchExpressions:
          - key: app
            operator: In
            values:
            - frontend
        topologyKey: "kubernetes.io/hostname"
  containers:
  - name: contenedor-ejemplo
    image: nginx

Aquí, el pod será colocado en un nodo donde ya exista un pod con la etiqueta app=frontend.