## page was renamed from k8s/StudyNotes/NodeSelectors&NodeAffinity ## page was renamed from k8s/StudyNotes/NodeSelectors = k8s/StudyNotes/NodeSelectors & Node Affinity = * Example is different size nodes, with labels Large, Medium, Small * Get labels on node {{{ kubectl get nodes node01 --show-labels }}} 1. (Older)nodeSelector, no logic. Ind pod-def.yaml, add to spec: nodeSelector: {{{ apiVersion: kind: Pod metadata: name: myapp-pod spec: containers: - name: data-processor image: dataproc nodeSelector: size: Large }}} * label node with {{{ kubectl label node 2. (Newer)Node Affinity and anti affinity. * Node Affinity more flexabe but complex, e.g. pick large node {{{ spec: containers: ... affinity: nodeAffinity: requiredDuringSchedulingIgnoreDuringExecution: nodeSeletorTerms: - matchExpressions: - key: size operator: In values: - Large }}} * 2x types of Node affinity 1. requiredDuringSchedulingIgnoredDuringExecution 2. preferredDuringSchedulingIgnoredDuringExecution 3. future planned 1. requiredDuringSchedulingRequiredDuringExecution 1. preferredDuringSchedulingRequiredDuringExecution * Node Affinity, can have different operator's: * operator: In * operator: Exists