<div style="font-family:'Noto Sans KR',sans-serif;line-height:1.8;max-width:860px;margin:0 auto">
<p style="color:#666;font-size:14px">🔍 검색 키워드: k8s OOMKilled, Kubernetes 메모리 부족, 파드 종료, 메모리 리소스 설정, 컨테이너 메모리 누수</p>
<h2>k8s OOMKilled 에러 진단 및 해결</h2>
<p>Kubernetes에서 파드가 갑자기 종료되고 재시작되는 문제는 보통 메모리 부족 때문입니다.</p>
<h3>1. 증상: 파드가 자꾸 크래시된다</h3>
<pre style="background:#1e1e1e;color:#d4d4d4;padding:16px;border-radius:6px;overflow-x:auto"><code>$ kubectl get pods
NAME READY STATUS RESTARTS AGE
my-app-abc123 0/1 CrashLoopBackOff 5 2m
Last State: Terminated (reason:OOMKilled, exit code:137)</code></pre>
<p>exit code 137은 Linux에서 SIGKILL(9) 신호를 받았다는 뜻입니다.</p>
<h3>2. 원인</h3>
<ul>
<li>메모리 limit이 너무 낮게 설정됨</li>
<li>애플리케이션의 메모리 누수</li>
<li>노드의 물리 메모리 부족</li>
</ul>
<h3>3. 해결 방법</h3>
<h4>방법 1: 메모리 limit 증가</h4>
<pre style="background:#1e1e1e;color:#d4d4d4;padding:16px;border-radius:6px;overflow-x:auto"><code>resources:
limits:
memory: 512Mi
requests:
memory: 256Mi</code></pre>
<h4>방법 2: HPA로 자동 확장</h4>
<pre style="background:#1e1e1e;color:#d4d4d4;padding:16px;border-radius:6px;overflow-x:auto"><code>apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: my-app-hpa
spec:
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: memory
target:
type: Utilization
averageUtilization: 70</code></pre>
<h3>정리표</h3>
<table border="1" cellpadding="10" cellspacing="0" style="width:100%;border-collapse:collapse">
<tr style="background:#f5f5f5"><th style="text-align:left">확인 항목</th><th style="text-align:left">명령어</th><th style="text-align:left">의미</th></tr>
<tr><td>파드 상태</td><td>kubectl describe pod</td><td>OOMKilled 여부</td></tr>
<tr><td>실제 메모리 사용</td><td>kubectl top pod</td><td>현재 사용량</td></tr>
<tr><td>노드 여유</td><td>kubectl top node</td><td>전체 노드 메모리 상태</td></tr>
</table>
<hr>
<p><strong>팁</strong>: requests는 평상시 사용량의 70~80%, limits는 requests의 1.5~2배로 설정하는 것이 best practice입니다.</p>
</div>
댓글 없음:
댓글 쓰기