Sobes.tech
Middle+

Kādi ir noteikumi, kas aizliedz uzsākt konkrētu mezgla punktu sistēmā?

sobes.tech AI

Atbilde no AI

Ir ir šie pagrindiniai mechanizmai:

  • Taints un Tolerations (T/T):

    • Taints (Zemūdens marķējumi): tiek piemēroti mezgliem. Tie ļauj mezglam "atstumt" podus, kuriem nav atbilstošas atļaujas.
    • Tolerations (Tolerances): tiek piemēroti podiem. Tie ļauj podam palikt uz mezgla, kuram ir atbilstošs zemūdens marķējums.

Taint efektu veidi:

  • NoSchedule - pods netiks izvietots uz mezgla, ja tam nav atbilstošas atļaujas.

  • PreferNoSchedule - plānotājs mēģinās ne izvietot podu uz šī mezgla, bet var to darīt, ja nav citu iespēju.

  • NoExecute - pods netiks izvietots uz mezgla, un jau darbojošie podi, kuriem nav atbilstošas atļaujas, tiks izslēgti.

  • Node Affinity (Mezgla tuvums):

    • requiredDuringSchedulingIgnoredDuringExecution: plānotājs ir spiests izvietot podu uz mezgla, kas atbilst noteiktajiem tuvuma kritērijiem. Ja nav piemērotu mezglu, pods paliks Pending stāvoklī.
    • preferredDuringSchedulingIgnoredDuringExecution: plānotājs cenīsies izvietot podu uz mezgla, kas atbilst noteiktajiem tuvuma kritērijiem. Ja nav piemērotu mezglu, pods var tikt izvietots arī uz citiem mezgliem.
  • Kubelet konfigurācija:

    Jūs varat izmantot kubelet iestatījumus, lai ierobežotu konkrētu podu tipus, kas var tikt palaisti uz konkrēta mezgla, piemēram, caur static pods vai manifests. Lai gan tas ir mazāk elastīgs pieejas veids dinamiskai pārvaldībai.

# Taint piemērs
apiVersion: v1
kind: Node
metadata:
  name: node1
spec:
  taints:
  - key: special
    value: true
    effect: NoSchedule
# Toleration piemērs
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  tolerations:
  - key: special
    operator: Equal
    value: true
    effect: NoSchedule
  containers:
  - name: my-container
    image: nginx
# Node Affinity piemērs
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