Pod Evicted : The node was low on resource: ephemeral-storage
상황
nginx pod에 과부하는 주던 중
Evicted 상태의 Pod가 다수 생성되면서
계속 새로운 Pod가 재생성되고 있음.
Evicted Pod는 사라지지 않고 계속 있음.
[오류 메세지]
The node was low on resource: ephemeral-storage. Container nginx was using 28Ki, which exceeds its request of 0.
원인
worker node 가 1개인 cluster에서 test를 하고있었는데
network 트래픽이 과부하되면서 pod의 임시 volume인 ephemeral volumes의 용량이 부족해지면서
pod가 강제 종료되고
deployment로 인해 pod가 다시 재생성되면서
새로운 pod ephemeral volume이 초기화 되니 다시 정상동작함
하지만 또 네트워크 트레픽이 과부하되니 위 상황이 반복됨.
또 index pod에만 과부하를 줬는데 nginx pod도 evicted 상황이 되는것으로 보아
worker node 자체에 과부하가 가서 ephemeral volume을 매번 초기화하는것으로 보임.
[ephemeral volume 참고]
https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/
인스턴스 저장소(Instance Store) 볼륨은 임시 저장소(Ephemeral Storage)라고도 불린다.
인스턴스 저장소 볼륨은 멈출(stop)수 없다. 만약 호스트 실패가 발생하면 데이터를 잃게된다.
EBS backed 인스턴스는 멈출수 있다. 만약 멈추더라도 인스턴스의 데이터가 사라지지 않는다.
인스턴스 저장소와 EBS Backed 인스턴스 모두 재기동(reboot) 할 수 있으며 데이터를 잃지 않는다.
기본적으로 ROOT 볼륨은 중단(terminate)될 경우 삭제된다. 그러나 EBS 볼륨은 AWS로 하여금 root device volume을 유지시키도록 할 수 있다.
해결책
일단 근본적인 원인인 리소스임.
트레픽을 과부하를 분산 시킬 수 있도록 worker node를 구성해야함.
충분한 자원이 필요함.
이외의 해결책은 더 리서치가 필요해보임.
아마 kubernetes 설정으로 해결할 수도 있을 것 같음.
제 글을 복사할 시 출처를 명시해주세요.
글에 오타, 오류가 있다면 댓글로 알려주세요! 바로 수정하겠습니다!