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