관리 메뉴

너와 나의 스토리

[Kubernetes] taint, 리소스 부족으로 pod가 스케줄링 되지 않는 문제 본문

개발

[Kubernetes] taint, 리소스 부족으로 pod가 스케줄링 되지 않는 문제

노는게제일좋아! 2024. 10. 15. 14:11
반응형

에러 로그:

0/9 nodes are available: 1 node(s) had untolerated taint {node-role.dkosv3.9rum.cc/lb: true}, 3 node(s) had untolerated taint {node-role.kubernetes.io/master: }, 5 Insufficient cpu. preemption: 0/9 nodes are available: 4 Preemption is not helpful for scheduling, 5 No preemption victims found for incoming pod..
  • 쿠버네티스에서 pod를 스케줄링할 수 없음을 나타내는 에러 메시지 
  • 에러 메시지 해석
    • 0/9 nodes are available:
      • Kubernetes 클러스터에 9개의 노드가 있지만, 현재 Pod를 스케줄링할 수 있는 노드가 없음을 나타냅니다.
    • untolerated taint:
      • node-role.dkosv3.9rum.cc/lb: true와 node-role.kubernetes.io/master: 와 같은 taint가 있는 노드가 있습니다. 이 taint는 특정 조건을 충족하지 않는 Pod가 해당 노드에 스케줄링되는 것을 방지합니다.
      • Pod가 taint를 toleration 하지 않으면 해당 노드에서 실행할 수 없습니다.
    • Insufficient cpu:
      • 요청한 CPU 리소스가 클러스터 내의 사용 가능한 CPU 리소스보다 많습니다. 이는 Pod가 필요한 CPU를 사용할 수 없음을 의미합니다.
    • Preemption:
      • Preemption은 기존의 Pod를 종료하고 새로운 Pod를 스케줄링하기 위해 자원을 확보하는 방법입니다. 메시지에 따르면, preemption이 도움이 되지 않거나 preemption의 대상이 될 Pod가 발견되지 않았습니다.
  • taints란
    • Kubernetes에서 taints는 노드의 특성을 나타내는 메커니즘이다.
    • taint는 특정 노드가 특정 조건을 충족하지 않는 Pod를 수용하지 않도록 제어하는 데 사용된다. 이는 노드가 특정 용도로 예약되어 있거나, 노드의 상태가 좋지 않음을 나타낼 수 있다.

 

 

해결 방법:

  • Taint 제거
kubectl taint nodes <NODE_NAME> <KEY>:<VALUE>:NoSchedule-
  • 혹시 다시 추가해야한다면
kubectl taint nodes <NODE_NAME> <KEY>:<VALUE>:<EFFECT>
반응형
Comments