Kubernetes/Udemy - CKAD with Tests

Node Selector

비번변경 2021. 7. 20. 22:36

Node Selector

특정 노드에만 포드를 배치할 수 있도록 제한하는 방법 중 하나다.

포드 정의 파일에 nodeSelector라는 속성을 추가하여 사용한다.

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
spec:
  containers:
    - name: data-processor
    image: data-processor
  nodeSelector:
    type: cpu

type: cpu는 포드 생성 전에 지정된 레이블로, 노드에 레이블이 지정되어 있어야 한다.

쿠버네티스 스케쥴러는 이 레이블을 이용해 포드를 배치할 노드를 식별한다.

nodeSelector에 따른 스케쥴링 범위

 

노드에 레이블 지정

kubectl labels nodes <NODE_NAME> <LABEL_KEY>=<LAVEL_VALUE>

# 예시
kubectl labels nodes node_1 size=Large

노드에 레이블 지정 후 포드를 생성하면 지정된 노드에 포드가 배치된다.

 

다만 Node Selector는 A 노드 또는 B 노드에 포드 배치, A를 제외한 노드에 포드 배치 등과 같은 다소 복잡한 조건에서는 사용할 수 없다.