---
description: Describe about Node Affinity
---

# Node Affinity

This property performs similar functions to the Node Selector, but it possesses the capability to execute more intricate operations compared to the Node Selector.

In continuation with the Node Selector exercise previously. we can use this Pod template .&#x20;

```yaml
# Pod Template
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels: 
    name: nginx
spec: 
  containers:
  - name: nginx
    image: nginx 
    ports:
      - containerPort: 8080
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution: (1)
        nodeSelectorTerms:
        - matchExpressions:
          - key: size        
            operator: In (2)
            values:
            - Large
            - Medium
          
```

(1) is property about when pod avaiable. There are 3 type.

1. `requiredDuringSchedulingIgnoredDuringExecution`
2. `preferredDuringSchedulingIgnoredDuringExecution`
3. `requiredDuringSchedulingRequiredDuringExecution`\
   \


`During Scheduling` =  It mean Pod does not exist in Node or first time create Pod

`During Execution` =  It mean After Pod created (maybe someone remove label from Node)

`required` = Need to have if not It will not do anything. ex: `requiredDuringScheduling` if Node does not match the condition Pod will not be created &#x20;

`preferred`= Have or not have it ok . ex:  `preferredDuringScheduling`  If the Node meets the specified conditions, the Pod will be created on that Node; otherwise, it will select an alternative Node.

`Ignored`=It will not do anything. ex:  `IgnoredDuringExecution`If a Pod has already been created on the Node, subsequently removing the label from the Node will not impact the Pod. but If it's be `RequiredDuringExecution`It will terminate the Pod

|        | During Scheduling | During Execution |
| ------ | ----------------- | ---------------- |
| Type 1 | `required`        | `Ignored`        |
| Type 2 | `preferred`       | `Ignored`        |
| Type 3 | `required`        | `Required`       |
