Čo je to affinity a anti-affinity v Kubernetes?
sobes.tech AI
Odpoveď od AI
Affinity a anti-affinity v Kubernetes sú mechanizmy, ktoré umožňujú riadiť umiestnenie podov na uzloch klastru s prihliadnutím na určité pravidlá a preferencie.
-
Affinity (prilnavosť) stanovuje pravidlá, podľa ktorých sa pody snažia byť umiestnené blízko iných podov alebo na uzloch s určitými štítkami. To pomáha napríklad pri skupinovaní súvisiacich služieb na zníženie latencie.
-
Anti-affinity (anti-prilnavosť) naopak, zabezpečuje, že pody sa vyhýbajú umiestneniu v blízkosti určitých podov alebo na uzloch s určitými štítkami. To je užitočné na zvýšenie odolnosti, zabezpečujúc, že kópie jednej služby nebudú na tom istom uzle.
Príklad použitia affinity v manifeste podu:
apiVersion: v1
kind: Pod
metadata:
name: príklad-pod
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- frontend
topologyKey: "kubernetes.io/hostname"
containers:
- name: príklad-kontajner
image: nginx
Tu bude pod umiestnený na uzle, kde už existuje pod s etiketou app=frontend.