Sobes.tech
Middle+

Welke regels verbieden het starten van een bepaald knooppuntpunt in het systeem?

sobes.tech AI

Antwoord van AI

De volgende hoofdmechanismen bestaan:

  • Taints en Tolerations (T/T):

    • Taints (Vervuilingslabels): Worden toegepast op knooppunten. Hiermee kan een knooppunt pods "afwijzen" die niet de juiste tolerantie hebben.
    • Tolerations (Toleranties): Worden toegepast op pods. Hiermee kan een pod op een knooppunt worden geplaatst dat een bijbehorend vervuilingslabel heeft.

    Types effecten van Taint:

    • NoSchedule - De pod wordt niet gepland op het knooppunt als hij niet de juiste tolerantie heeft.
    • PreferNoSchedule - De scheduler probeert de pod niet op dit knooppunt te plaatsen, maar kan dat doen als er geen andere opties zijn.
    • NoExecute - De pod wordt niet geplaatst op het knooppunt, en pods die al op het knooppunt draaien zonder de juiste tolerantie, worden verwijderd.
  • Node Affinity (Knoop-affiniteit):

    • requiredDuringSchedulingIgnoredDuringExecution: De scheduler moet de pod plaatsen op een knooppunt dat voldoet aan de affiniteitscriteria. Als er geen geschikte knooppunten zijn, blijft de pod in Pending.
    • preferredDuringSchedulingIgnoredDuringExecution: De scheduler probeert de pod te plaatsen op een knooppunt dat voldoet aan de affiniteitscriteria. Als er geen geschikte knooppunten zijn, kan de pod op andere knooppunten worden geplaatst.
  • Kubelet-configuratie:

    Je kunt kubelet-instellingen gebruiken om de typen pods te beperken die op een specifiek knooppunt kunnen worden uitgevoerd, bijvoorbeeld via static pods of manifests. Dit is minder flexibel voor dynamisch beheer.

# Voorbeeld Taint
apiVersion: v1
kind: Node
metadata:
  name: node1
spec:
  taints:
  - key: special
    value: true
    effect: NoSchedule
# Voorbeeld Toleration
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  tolerations:
  - key: special
    operator: Equal
    value: true
    effect: NoSchedule
  containers:
  - name: my-container
    image: nginx
# Voorbeeld Node Affinity
apiVersion: v1
kind: Pod
metadata:
  name: my-pod-with-affinity
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - node1
            - node2
  containers:
  - name: my-container
    image: nginx