Selectors and Affinity
Node Selectors
ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠΎΠΌΠ΅ΡΠΊΠΈ ΠΊ node ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
kubectl label nodes <node-name> <label-key>=<label-value>
kubectl label nodes node-01 size=Large # ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ Pod ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Node Selector:
apiVersion: v1
kind: Pod
metadata:
name: myapp
spec:
containers:
- name: data-processor
image:: data-processor
nodeSelector:
size: Large
Node Selectors ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ 1:1 ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΊΠΈ Node ΠΈ Pod. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Node Affinity.
Node Affinity
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ² Node Affinity Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π² ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠ΅ Pod:
apiVersion: v1
kind: Pod
metadata:
name: myapp
spec:
containers:
- name: data-processor
image:: data-processor
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: size
operator: In # ΡΡΠ»ΠΎΠ²ΠΈΠ΅, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ NotIn, ΠΈΠ»ΠΈ Exists - Π΅ΡΡΡ Π»ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ ΡΠ°ΠΊΠΎΠΉ label, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅?
values:
- Large # ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π½Π° Π»ΡΠ±ΠΎΠ΅ ΠΈΠ· Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΠΏΠΈΡΠΊΠ°
- Medium
Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΡΠ΅ labels ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π½Π° Nodes ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, Π΅ΡΡΡ 2 ΡΠΈΠΏΠ° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°Π΄Π°ΡΡΡΡ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ Pod:
requiredDuringSchedulingIgnoredDuringExecution
- Π΅ΡΠ»ΠΈ Nodes Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ labels Π½Π΅Ρ, Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠΉ Pod Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅;preferredDuringSchedulingIgnoredDuringExecution
- Π΅ΡΠ»ΠΈ Nodes Ρ Π½ΡΠΆΠ½ΡΠΌΠΈ labels Π½Π΅Ρ, Π²ΡΡ ΡΠ°Π²Π½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ Pod Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅.
ΠΡΠ»ΠΈ Pod ΡΠΆΠ΅ Π·Π°ΠΏΡΡΠ΅Π½ Π½Π° Node Π² ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ label, ΡΠΎ Π² Π²Π΅ΡΡΠΈΠΈ 1.27 Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ Π² ΠΎΠ±ΠΎΠΈΡ ΡΠ»ΡΡΠ°ΡΡ . Π ΠΏΠ»Π°Π½Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΅ΡΠΈΠΉ ΡΠΈΠΏ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ:
requiredDuringSchedulingRequiredDuringExecution
- Π΅ΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Pod ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ affinity - ΡΠ΄Π°Π»ΠΈΡΡ Pod Ρ Node.