파드를 여러가지 이유 or 효율적인 관리, 운영 목적상 특정 노드에 배치하기 위해 쿠버네티스의 파드 스케줄러를 제어하는 여러가지 방법에 대해 알아보자.
nodeName은 이번 챕터에서 유일하게 파드를 배치할 때 파드 스케줄러를 사용하지 않는 방식이며, 파드 스케줄러보다 우선순위가 높다.
nodeName은 파드를 특정 노드에 배치할 때 스케줄러가 관여하지 않는다.
myapp-rs-nn.yaml
복제본들은 모두 kube-node1에 배치된다.
파드를 특정 노드에 배치하기 위해 파드 스케줄러를 제어하는 가장 쉬운 방법
노드에 Label을 지정하고, 컨트롤러 및 파드 선언시 .spec.nodeSelector
필드로 Label를 이용해 노드를 선택할 수 있다.
각 노드에 인공지능 애플리케이션을 위한 GPU 그래픽 카드가 있다고 가정하고 레이블을 선언해본다.
myapp-rs-nn.yaml
다음은 노드 셀렉터를 선언한 레플리카셋 리소스다.
myapp-rs-ns.yaml
역시 마찬가지로 kube-node1에 배치되었다.