[k8s] pod를 특정 nod에 한정해서 올리기


pod를 특정 nod에 한정해서 올리기

nodeSelector(노드셀렉터) 방식

파드에 노드셀렉터를 적용하여 특정 레이블이 선택된 노드에 올라가도록 할 수 있음. 반면 노드셀렉터를 사용하지 않는 파드도 레이블이 붙여진 노드에 올라갈 수 있음 (배타적이지 않음)

taint(테인트)

노드에 테인트 설정된 경우, 해당 테인트에 대응하는 톨러레이션이라고 불리는 것이 존재하는 파드만 올라올 수 있음. 그리고 이미 톨러레이션이 없는 파드가 동작 중인 경우 NoExecute 옵션을 사용해서 쫓아낼 수 있음(배타적임)


노드셀렉터를 사용하면 배타적이지 않게 사용할 수 있지만 혹시라도 레이블에 매칭되는 노드 수가 적어지면 OOM으로 실패하게 되는 위험이 존재. (따라서 배포 순서도 변수가 될 수 있음.). 반면에 테인트를 사용하면 배타적으로 사용할 수 있고 다른 파드에 올라가 있는 녀석들을 즉시 쫓아낼 수 있음. 테스트해보니 테인트 방식은 어떤 파드가 톨러레이션을 가지고 있다고해서 반드시 매칭되는 테인트에 올라간다는 보장은 없음.. 즉 아무것도 설정안된 노드에도 올라갈 수 있으니 결국 완전 배타적으로 사용하려면 노드셀렉터랑 테인트를 둘 다 써야함.




© 2020. by berrrrr

Powered by berrrrr