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