반응형
Kubernetes의 Pod Scheduling에 관한 공부를 하다보면,
- Node Label을 이용한 NodeSelector, Node Affinity
- Node Taint, Tolerlation
가 꼭 등장한다.
위 2가지를 따로 따로 공부하면, 그렇구나 라고 이해가 되다가
이 2가지를 같이 놓고 생각해보면, 비슷한 기능을 하는 것 같은데 왜 이렇게 2가지 모두 있는거지 라는 질문이 자연스레 떠오른다.
아래 블로그가 이런 질문에 대한 답을 잘 하고 있다.
https://fisache.tistory.com/19
Node Taint 및 Toleration에 대해 기초부터 알고 싶다면, 아래의 Kubernetes Web Docs를 보면 좋다.
https://kubernetes.io/ko/docs/concepts/scheduling-eviction/taint-and-toleration/
# TODO
위 Web Docs에 TolerationSeconds에 관한 설명이 나오는데,
내 생각에는 Node 장애가 발생했을 때, 빠르게 Pod가 장애가 발생한 Node에서 종료 처리되고 다른 Node로 스케쥴링되게 하려면, 300초로 설정된 값을 1초로 줄이면 되지 않을까하는 상상을 해본다.
시간 여유가 있을 때, 한번 1초로 변경하고 Node를 다운시켜서 테스트해봐야겠다.
참고:
쿠버네티스는 사용자나 컨트롤러에서 명시적으로 설정하지 않았다면, 자동으로 node.kubernetes.io/not-ready 와 node.kubernetes.io/unreachable 에 대해 tolerationSeconds=300 으로 톨러레이션을 추가한다.
자동으로 추가된 이 톨러레이션은 이러한 문제 중 하나가 감지된 후 5분 동안 파드가 노드에 바인딩된 상태를 유지함을 의미한다.
'kubernetes' 카테고리의 다른 글
Openshift Authentication and authorization (0) | 2022.06.06 |
---|---|
OCP API Token 조회 (0) | 2022.05.19 |
Kubernetes 또는 OCP에서 REST API 사용 (0) | 2022.01.22 |
Kubernetes 또는 OCP에 SR-IOV 네트워크 추가 (0) | 2022.01.13 |
Kubernetes Pod이 Terminating 상태에 빠짐(Pod Stuck in Terminating Status) (0) | 2021.12.30 |