Sobes.tech
Middle+

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