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