Sobes.tech
Middle+

Milyen szabályok tiltják egy adott csomóponti pont indítását a rendszerben?

sobes.tech MI

Válasz az MI-től

A következő fő mechanizmusok léteznek:

  • Taints és Tolerations (T/T):

    • Taints (Szennyeződés címkék): A csomópontokra alkalmazhatók. Lehetővé teszik, hogy egy csomópont "elutasítson" olyan podokat, amelyek nem rendelkeznek a megfelelő toleranciával.
    • Tolerations (Toleranciák): A podokra alkalmazhatók. Lehetővé teszik, hogy egy pod egy olyan csomóponton legyen, amely rendelkezik a megfelelő szennyeződés címkével.

    Taint hatás típusai:

    • NoSchedule - A pod nem kerül ütemezésre a csomóponton, ha nincs megfelelő toleranciája.
    • PreferNoSchedule - A ütemező megpróbálja nem elhelyezni a podot ezen a csomóponton, de megteheti, ha nincs más lehetőség.
    • NoExecute - A pod nem kerül elhelyezésre a csomóponton, és a már ott futó podokat, amelyek nem rendelkeznek a megfelelő toleranciával, eltávolítják.
  • Node Affinity (Csúcspont affinitás):

    • requiredDuringSchedulingIgnoredDuringExecution: A ütemező köteles a podot egy olyan csomópontba helyezni, amely megfelel az affinitási kritériumoknak. Ha nincs megfelelő csomópont, a pod Pending állapotban marad.
    • preferredDuringSchedulingIgnoredDuringExecution: A ütemező megpróbálja a podot egy olyan csomópontba helyezni, amely megfelel az affinitási kritériumoknak. Ha nincs megfelelő csomópont, a pod más csomópontokra is helyezhető.
  • Kubelet konfiguráció:

    A kubelet beállításokat használhatja a típusú podok korlátozására, amelyek egy adott csomóponton futtathatók, például static pods vagy manifests segítségével. Ez kevésbé rugalmas a dinamikus kezeléshez.

# Taint példa
apiVersion: v1
kind: Node
metadata:
  name: node1
spec:
  taints:
  - key: special
    value: true
    effect: NoSchedule
# Toleration példa
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 példa
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