Middle+
Tizimda ma'lum bir tugun nuqtasini ishga tushirishni taqiqlovchi qoidalar qanday?
sobes.tech AI
AIdan javob
Asosiy mexanizmlar quyidagilardan iborat:
-
Taints va Tolerations (T/T):
- Taints (Zararlanish belgilari): Tugunlarga qo'llaniladi. Ular tugunning mos keladigan toleransiga ega bo'lmagan podlarni "rad etish" imkonini beradi.
- Tolerations (Toleransiyalar): Podlarga qo'llaniladi. Ular podga mos keladigan zararlanish belgisiga ega tugunda joylashishga imkon beradi.
Taint ta'sir turlari:
NoSchedule- Pod mos keladigan tolerans bo'lmasa, tugunga joylashtirilmaydi.PreferNoSchedule- rejalashtiruvchi bu tugunga podni joylashtirmaslikni xohlaydi, lekin boshqa variantlar bo'lmasa, qilishi mumkin.NoExecute- Pod tugunga joylashtirilmaydi, va mos keladigan toleransga ega bo'lmagan podlar chiqariladi.
-
Node Affinity (Tugun bilan o'xshashlik):
requiredDuringSchedulingIgnoredDuringExecution: Rejalashtiruvchi majburiy ravishda podni mos keladigan tugunga joylashtiradi. Agar mos tugunlar bo'lmasa, pod Pending holatda qoladi.preferredDuringSchedulingIgnoredDuringExecution: Rejalashtiruvchi harakat qiladi podni mos tugunga joylashtirishga. Agar mos tugunlar bo'lmasa, pod boshqa tugunlarga joylashtirilishi mumkin.
-
Kubelet konfiguratsiyasi:
Kubelet sozlamalaridan foydalanib, ma'lum tugunlarda ishga tushirilishi mumkin bo'lgan pod turlarini cheklash mumkin, masalan,
static podsyokimanifestsorqali. Bu dinamik boshqaruv uchun kamroq moslashuvchan.
# Taint misoli
apiVersion: v1
kind: Node
metadata:
name: node1
spec:
taints:
- key: special
value: true
effect: NoSchedule
# Toleration misoli
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 misoli
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