개발
home
🏸

Kubernetes에 pod 할당되지 않는 문제 - EC2 IP 개수 부족 경우

Created
2022/11/09
Tags
Kubernetes
EC2
trouble shooting
2022-11-09 @이영훈
쿠버네티스에서 0/2 nodes are available: 2 Too many pods. 에러를 만났습니다.
CPU, Memory 잔여량도 충분한데 pod가 스케줄링이 되지 않는 문제가 있었습니다.
kubectl describe pod <pod-id> ### output # ... # Events: # Type Reason Age From Message # ---- ------ ---- ---- ------- # Warning FailedScheduling 18s (x46 over 45m) default-scheduler 0/2 nodes are available: 2 Too many pods.
Bash
복사

인스턴스 유형별 (탄력적) 네트워크 인터페이스 당 IP 주소 개수

이유를 찾아보니 AWS 인스턴스 타입별로 (탄력적) 네트워크 인터페이스 별로 IP 주소를 할당할 수 있는 최대 개수가 정해져있습니다.
IPv6 주소 제한은 네트워크 인터페이스당 프라이빗 IPv4 주소 제한과 별개입니다. 모든 인스턴스 유형이 IPv6 주소 지정을 지원하는 것은 아닙니다.
위의 표를 보면 m6g.large의 경우 IPv4를 10개 연결할 수 있습니다. private IPv4를 10개 사용하면 11개부터는 IP를 할당할 수 없어 pending이 되는 문제가 발생하는 것입니다.
문제 해결을 위해서는 worker node를 추가하거나 상위 인스턴스로 교체하면 문제가 해결됩니다.

판단하기

IPv4 할당과 비용 관점에서 보면 m6g.medium 2개보다 m6g.large 1개가 더 비용 효율적입니다.
m6g.large는 m6g.medium의 정확히 2배 가격입니다.
그렇기 때문에 IP 할당 관점에서는 m6g.large 1대다 m6g.medium 2대보다 더 효율적입니다.
비용과 필요한 IP 개수 등을 종합적으로 잘 판단해서 선택하면 됩니다.

Reference