인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

nyangduck [DEL] 240324014446's profile image
nyangduck [DEL] 240324014446

asked

The Kubernetes Trend: Level Up Your Skills with Theory and Practice [Beginner to Intermediate]

Pod - Node Scheduling

taint 와 nodeselector 의 차이가 궁금합니다.

Written on

·

936

1

안녕하세요. 강의잘듣고있습니다.
taint 와 nodeselector 의 기능적 차이가 무엇인가요??
보면 taint 를통해서 할수있는건 기존의 node 에 할당된 pod 들을 no excution 을통해 삭제하는것 이외에 nodeAffinity 같은 selector 기능과 크게 다르지 않은거 같아서요.
node selector 의 affinity 와 tatin 의 차이가 있나요??
 
그리고 제가 개발된 pod 에서
toleration 이 아래와같이 설정되어있는데
```
node.kubernetes.io/not-ready exist NoExecute...
```
제가 사용하는 node 들에서는 taint 가 하나도 적용이안되어있는 상황입니다. 이런경우 이런 toleration 이 의미가 없는것 같은데 맞을까요??
dockerkubernetes

Answer 1

1

1pro님의 프로필 이미지
1pro
Instructor

안녕하세요. 

일반적으로 pod를 어떤 노드에 배치할지에 대한 기능으로 nodeSeletor나 nodeAffinity를 쓰면 됩니다.

그리고 taint에 스케줄링의 성격이 있긴 하지만, 주로 사용되는 목적은 노드 관리입니다.

운영자 입장에서 업그레이드나 노드 장애, 특정 노드에 접근 제한을 하기 위한 용도라고 보시면 되요.

예를들어, 특정 노드에 업그레이드 작업을 할때, 갑자기 node가 shutdown되고 그러면 그위에 pod가 갑자기 죽어버립니다. 그러면 일시적인 서비스 장애가 생기고요. 이때 drain이라는 기능을 통해 pod들을 다른 node에 옮겨 놓고는데, 이 기능은 작업할 node에 taint를 걸어놓는 겁니다. 

그럼 taint의 기능으로 해당 node위에 pod들은 다른 node로 옮겨져요.

taint와 tolreration 에 스케줄링의 기능도 있긴 하지만, 주로 사용되는 케이스는 노드 작업을 위해서라고 보시면 됩니다.

---

pod에 not-ready taint는 default로 적용되는 속성입니다.

node를 조회할때 tolerations이 나오지 않지만, node에 장애가 생겼을때, kubernetes가 node한테 tolerations을 생성해줍니다. 

한번 node1을 shutdown시킨 후 조금 있다가 node detail 명령으로 해당 노드를 조회해보세요. 

 

nyangduck [DEL] 240324014446's profile image
nyangduck [DEL] 240324014446

asked

Ask a question