Middle+
Sistemdə müəyyən bir düyün nöqtəsinin işə salınmasını qadağan edən qaydalar hansılardır?
sobes.tech Süni İntellekt
AI-dan cavab
Əsas mexanizmlər aşağıdakılardır:
-
Taints və Tolerations (T/T):
- Taints (Çirklənmə Etiketləri): Node-lara tətbiq olunur. Bu, node-un uyğun tolerans olmayan pod-ları "rədd etməsinə" imkan verir.
- Tolerations (Toleranslar): Pod-lara tətbiq olunur. Bu, pod-un uyğun çirklənmə etiketi olan node-da yerləşməsinə imkan verir.
Taint təsir növləri:
NoSchedule- Pod, uyğun tolerans yoxdursa, node-da yerləşdirilməyəcək.PreferNoSchedule- planlayıcı bu node-da pod yerləşdirməməyə çalışacaq, amma digər variantlar yoxdursa, edə bilər.NoExecute- Pod, node-da yerləşdirilməyəcək və artıq orada olan pod-lar, uyğun tolerans yoxdursa, çıxarılacaq.
-
Node Affinity (Node Uyğunluğu):
requiredDuringSchedulingIgnoredDuringExecution: Planlayıcı mütləq uyğun node-a pod-u yerləşdirməlidir. Əgər uyğun node yoxdursa, pod Pending vəziyyətində qalacaq.preferredDuringSchedulingIgnoredDuringExecution: Planlayıcı cəhd edəcək pod-u uyğun node-a yerləşdirməyə. Əgər uyğun node yoxdursa, pod digər node-larda yerləşdirilə bilər.
-
Kubelet Konfiqurasiyası:
Belirli node-larda işləyə biləcək pod tiplərini məhdudlaşdırmaq üçün kubelet konfiqurasiyalarından istifadə edə bilərsiniz, məsələn,
static podsvə yamanifestsvasitəsilə. Bu, dinamik idarə üçün daha az elastikdir.
# Taint nümunəsi
apiVersion: v1
kind: Node
metadata:
name: node1
spec:
taints:
- key: special
value: true
effect: NoSchedule
# Toleration nümunəsi
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 nümunəsi
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