본문으로 건너뛰기

Node Selectors


Node Selector

개념

  • nodeSelectorPod입장에서 어떤 Label이 달린 Node에 배치될 것인지 결정하는 개념이다.
  • 예를들어 사양이 높은 Node1 사양이 낮은 Node2, Node3가 있다. 그리고, 워크로드가 높은 Pod1, 워크로드가 낮은 Pod2, Pod3가 있다고 가정하자.
  • 이 때, 워크로드가 높은 Pod1Node2 혹은 Node3에 배치될 수도 있다. 이러한 상황은 개선될 필요가 있다.
  • 이 때, Pod1nodeSelector를 이용해서 Node1에 강제로 배치할 수 있다.

Node에 Label 붙이기

kubectl label nodes <node-name> <label-key>=<label-value>
  • 문법
kubectl label nodes node-1 size=Large
  • 예시
  • node-1size=Large라는 label을 붙인다.

Pod에 nodeSelector 필드 추가

# pod-definition.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
spec:
containers:
- name: data-processor
image: data-processor
nodeSelector:
size: Large
  • spec
    • nodeSelector(Dictionary)
      • 선택하고자하는 Nodelabel을 입력한다.
kubectl create -f pod-definition.yaml

레퍼런스