Czym jest Node Affinity?¶
Podobnie jak w przypadku oznaczania Node Labelami i uruchamiania na wybranych węzłach Podów, podobną funkcjonalność daje mechanizm Node Affinity.
Możemy w ten sposób definiować na jakich Nodach Pod ma być uruchomiony, lecz tutaj możemy definiować wiele grup, przykładowo Node o rozmiarze medium, bądź large.
Definicja Poda z Node Affinity¶
Początkowo musimy przypisać Label do Node:
Następnie, przypisujemy Podowi Node Affinity
apiVersion: v1
kind: Pod
metadata:
name: <pod_name>
spec:
containers:
- name: <container_name>
image: <container_image>
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: <label_key>
operator: In
values:
- <label_value>
...
- <label_value2>
- <label_valueN>
Można wiele wartości Labela przypisać, które mogą pasować do nodów, na których Pod zostanie uruchomiony.
Rodzaje operatorów (pole operator)¶
In- może być uruchomiony na tych NodachNotIn- nie może działać na tych NodachExist- klucz po prostu istnieje - Label jest utworzony na Node, niezależnie jaka wartość