Sobes.tech
Middle+

Жүйеде белгилүү бир түйүн чекитин ишке киргизүүнү тыюуучу эрежелер кандай?

sobes.tech AI

AIден жооп

Төмөндө негизги механизмдер бар:

  • Taints жана Tolerations (T/T):

    • Taints (Зиянды белгилер): булдар узелдерге колдонулат. Алар узелго "подтарды четке кагууга" мүмкүндүк берет, эгерде аларда тиешелүү уруксат жок болсо.
    • Tolerations (Уруксаттар): булдар подтарга колдонулат. Алар подтун тиешелүү белгилери бар узелде калуусуна мүмкүндүк берет.

Taint-тын эффекттеринин түрлөрү:

  • NoSchedule - эгерде тиешелүү уруксат жок болсо, под узелге жайгаштырылбайт.

  • PreferNoSchedule - планировщик бул подту ушул узелде жайгаштырбоого аракет кылат, бирок башка варианттар жок болсо, жасай алат.

  • NoExecute - под узелде жайгаштырылбайт жана ал узелде иштеп жаткан подтар, тиешелүү уруксаты жок болсо, чыгарылат.

  • Node Affinity (Узелдердин жакындашуусу):

    • requiredDuringSchedulingIgnoredDuringExecution: планировщик милдеттүү түрдө подту белгилүү шарттарга жооп берген узелде жайгаштырат. Эгер ылайыктуу узелдер жок болсо, под күтүүлдө калат.
    • preferredDuringSchedulingIgnoredDuringExecution: планировщик жасоого аракет кылат подту белгилүү шарттарга жооп берген узелде жайгаштыруу үчүн. Эгер ылайыктуу узелдер жок болсо, под башка узелдерге да жайгаштырылышы мүмкүн.
  • Kubelet конфигурациясы:

    Көбүнчө 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