오늘도 한 뼘 더

[k8s] Error - 0/1 nodes are available: 1 Too many pods. preemption: 0/1 nodes are available: 1 No preemption victims found for incoming pod. 본문

DevOps & Infra/K8S(Kubernetes)

[k8s] Error - 0/1 nodes are available: 1 Too many pods. preemption: 0/1 nodes are available: 1 No preemption victims found for incoming pod.

나른한댕댕이🐶 2023. 5. 23. 15:31
728x90
반응형

  # 배경  

쿠버네티스 Pod을 올리는 과정에서 새로 올라간 Pod이 Pending이 나면서 올라가지 않았다.

자세한 내용을 확인해 본 결과 다음과 같은 에러 메시지를 확인하였다.

 kubectl describe pod {pod}
 
 Type     Reason            Age                 From               Message
 ----     ------            ----                ----               -------
 Warning  FailedScheduling  3s (x2 over 5m26s)  default-scheduler  0/1 nodes are available: 1 Too many pods. preemption: 0/1 nodes are available: 1 No preemption victims found for incoming pod.

 

  # 문제  

해당 문제는 인스턴스에 만들 수 있는 Pod의 개수를 초과하여 생긴 문제였다.

AWS의 인스턴스는 타입별로 생성 가능한 pod의 개수를 제한하고 있었다.

deployment를 통해서 올리는 pod 이외에도 시스템에서 기본적으로 사용하는 pod들이 있어 개수가 초과된 것이었고 이를 같이 고려해야 함을 알게 되었다.

 

  # 해결  

AWS 인스턴스 타입별로 생성 가능한 pod의 개수를 확인하여 Cluster에 nodegroup을 지정하거나 사용하지 않는 pod을 삭제하여서 pod이 생성될 수 있는 공간을 만들어 줘야 한다.

다음은 AWS 인스턴스별 생성 가능한 pod의 개수를 확인할 수 있는 github 페이지이다.

https://github.com/awslabs/amazon-eks-ami/blob/master/files/eni-max-pods.txt

 

GitHub - awslabs/amazon-eks-ami: Packer configuration for building a custom EKS AMI

Packer configuration for building a custom EKS AMI - GitHub - awslabs/amazon-eks-ami: Packer configuration for building a custom EKS AMI

github.com

 

728x90
반응형
Comments