¿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.