본문 바로가기
Kubernetes

[ Kubernetes ] container 내부 core dump 다량 발생 대응

by 정윤재 2024. 8. 9.

pod 안의 container 에서 core dump 가 다량으로 생성 되면

 

1.  node 에서 disk-pressure 가 발생

2. disk-pressure 발생으로 해당 node 에 schedule 되는 pod 가 evicted 가 됨

3. evicted pod 가 계속 생성 되면서 기하급수적으로 node 의 disk-pressure 가 전이 됨

 

와 같은 현상이 발생 한다.

 

이런 현상을 방지 하기 위해서는 

몇 가지 결정해야 할 사항이 있다. 

 

- core dump 를 pod 에 남기는 것을 허용할 것인가

- core dump 를 남긴다면 몇개까지 허용할 것인가 (default 는 무제한)

 

제한적으로 core dump 를 남기거나 아예 안남기게 하겠다고 결정을 했다면

container run time 설정을 변경 해야 한다.

(여기서는 containerd 설정을 예로 한다. docker 이거나 다른 것일 경우 응용하시면 된다.)

 

조치사항 1. container runtime  의 설정 파일 위치 확인

 

shell> systemctl status containerd

 

나의 경우는 container runtime 설정 파일이 /etc/systemd/system/containerd.service 이다.

다른 경우는 /usr/lib/systemd/system/containerd.service 가 일반적일 것이다.

 

조치사항 2. container runtime  의 설정 값 변경

 

shell>vi /etc/systemd/system/containerd.service

 

설정 내용 중에 LimitCORE 의 값을 의사 결정 한 숫자로 넣어 주면 된다.

infinity 값은 아무래도 오류를 발생할 위험이 너무 높으니 10 이하의 숫자이거나 

어짜피 분석 하지 않을 것이라고 판단 하면 0으로 바꾸는 것도 좋은 방법일 것이라고 생각된다.

 

조치사항 3. container runtime  재기동

 

shell> systemctl restart containerd

shell> systemctl restart kubelet (kubelet 정상이 아닐때만)

 

※ container runtime 재기동은 해당 노드의 전체 pod 에 영향을 미치므로 주의해서 pm 식으로 진행을 권고한다.

 

 


댓글