Sobes.tech
Middle+

Қоидаҳое, ки дар системаи муайян кардани нуқтаи узвро манъ мекунанд, кадомҳоянд?

sobes.tech AI

Ҷавоб аз AI

Існуюць наступныя асноўныя механізмы:

  • Taints і Tolerations (T/T):

    • Taints (Загразненні): прымяняюцца да вузлоў. Дазваляюць вузлу "адхіліць" поды, якія не маюць адпаведнага дапушчэння.
    • Tolerations (Дазволы): прымяняюцца да подаў. Дазваляюць паду знаходзіцца на вузле, які мае адпаведнае загразненне.

Тыпы эфектаў Taint:

  • NoSchedule - пад не будзе размешчаны на вузле, калі ў яго няма адпаведнага дапушчэння.

  • PreferNoSchedule - планавальнік паспрабуе не размяшчаць пад на гэтым вузле, але можа зрабіць гэта, калі іншых варыянтаў няма.

  • NoExecute - пад не будзе размешчаны на вузле, і падо, якія ўжо працуюць на вузле без адпаведнага дапушчэння, будуць выціснуты.

  • Node Affinity (Сроднасць вузлоў):

    • requiredDuringSchedulingIgnoredDuringExecution: Планавальнік абавязаны размясціць пад на вузле, які адпавядае ўстаноўленым крытэрыям сроднасці. Калі адпаведных вузлоў няма, пад застанецца ў стане Pending.
    • preferredDuringSchedulingIgnoredDuringExecution: Планавальнік спрабуе размясціць пад на вузле, які адпавядае ўстаноўленым крытэрыям сроднасці. Калі адпаведных вузлоў няма, пад можа быць размешчаны і на іншых вузлах.
  • Kubelet Configuration:

    Можна выкарыстоўваць налады kubelet для абмежавання тыпаў падоў, якія могуць запускацца на канкрэтным вузле, напрыклад, праз static pods або manifests. Хоць гэта менш гнуткі падыход для дынамічнага кіравання.

# Прыклад Taint
apiVersion: v1
kind: Node
metadata:
  name: node1
spec:
  taints:
  - key: special
    value: true
    effect: NoSchedule
# Прыклад 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
# Прыклад 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