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