7/15

파드를 여러가지 이유 or 효율적인 관리, 운영 목적상 특정 노드에 배치하기 위해 쿠버네티스의 파드 스케줄러를 제어하는 여러가지 방법에 대해 알아보자.

nodeName

nodeName은 이번 챕터에서 유일하게 파드를 배치할 때 파드 스케줄러를 사용하지 않는 방식이며, 파드 스케줄러보다 우선순위가 높다.

nodeName은 파드를 특정 노드에 배치할 때 스케줄러가 관여하지 않는다.

myapp-rs-nn.yaml

myapp-rs-nn.yaml

복제본들은 모두 kube-node1에 배치된다.

복제본들은 모두 kube-node1에 배치된다.

nodeSelector

파드를 특정 노드에 배치하기 위해 파드 스케줄러를 제어하는 가장 쉬운 방법

노드에 Label을 지정하고, 컨트롤러 및 파드 선언시 .spec.nodeSelector필드로 Label를 이용해 노드를 선택할 수 있다.


각 노드에 인공지능 애플리케이션을 위한 GPU 그래픽 카드가 있다고 가정하고 레이블을 선언해본다.

myapp-rs-nn.yaml

myapp-rs-nn.yaml

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/bc9d81f8-5a8c-4220-b8b0-d7a8b0703fbd/Screenshot_from_2021-07-15_15-55-14.png


다음은 노드 셀렉터를 선언한 레플리카셋 리소스다.

myapp-rs-ns.yaml

myapp-rs-ns.yaml

역시 마찬가지로 kube-node1에 배치되었다.

역시 마찬가지로 kube-node1에 배치되었다.