Node Selectors
Node Selector
개념
nodeSelector는Pod입장에서 어떤Label이 달린Node에 배치될 것인지 결정하는 개념이다.- 예를들어 사양이 높은
Node1사양이 낮은Node2,Node3가 있다. 그리고, 워크로드가 높은Pod1, 워크로드가 낮은Pod2,Pod3가 있다고 가정하자. - 이 때, 워크로드가 높은
Pod1이Node2혹은Node3에 배치될 수도 있다. 이러한 상황은 개선될 필요가 있다. - 이 때,
Pod1을nodeSelector를 이용해서Node1에 강제로 배치할 수 있다.
Node에 Label 붙이기
kubectl label nodes <node-name> <label-key>=<label-value>
- 문법
kubectl label nodes node-1 size=Large
- 예시
node-1에size=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
specnodeSelector(Dictionary)- 선택하고자하는
Node의label을 입력한다.
- 선택하고자하는
kubectl create -f pod-definition.yaml
레퍼런스
- https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
- Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests (Mumshad)