O que são afinidade e anti-afinidade no Kubernetes?
sobes.tech IA
Resposta da IA
Affinity e anti-affinity no Kubernetes são mecanismos que permitem gerir a colocação de pods nos nós do cluster tendo em conta regras e preferências específicas.
-
Affinity (afinidade) define regras pelas quais os pods tentam colocar-se perto de outros pods ou em nós com certas etiquetas. Isto ajuda, por exemplo, a agrupar serviços relacionados para reduzir latências.
-
Anti-affinity (anti-afinidade) impede, pelo contrário, que os pods se coloquem perto de certos pods ou em nós com etiquetas específicas. Isto é útil para aumentar a resistência a falhas, garantindo que as cópias de um mesmo serviço não fiquem no mesmo nó.
Exemplo de uso de affinity num manifesto de Pod:
apiVersion: v1
kind: Pod
metadata:
name: exemplo-pod
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- frontend
topologyKey: "kubernetes.io/hostname"
containers:
- name: exemplo-container
image: nginx
Aqui, o pod será colocado num nó onde já exista um pod com a etiqueta app=frontend.