본문 바로가기
ops/kubernetes

nodeSelector vs nodeName vs nodeAffinity

by seohan1010 2026. 1. 7.

 

-nodeSelector

#스케줄러를 사용하지 않고 pod을 배치 
spec:
  nodeName: k8s-worker-node



-nodeName

#노드의 라벨과 정확히 일치할때 배치 
spec:
  nodeSelector:
    disktype: ssd



-nodeAffinity

#강제조건 or 가중치 배치 가능 

#강제조건 
affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - k8s-control-plane

#가중치 (우선적으로 배치)
affinity:
  nodeAffinity:
    preferredDuringSchedulingIgnoredDuringExecution:
    - weight: 80
      preference:
        matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - k8s-worker-node-2

#operator로 사용가능 연산자 

NotIn        값 목록 제외 
Exists       명시한 키가 존재하는지만 확인 
DoesNotExist 명시한 키가 존재하지 않는지 확인 
Gt / Lt      숫자로 비교