Files
obsidian/history/2026-04-20-metallb-controller-oom-fix.md

43 lines
1.4 KiB
Markdown

---
title: MetalLB controller OOMKilled 수정 (limit 상향)
date: 2026-04-20
tags: [history, metallb, k3s, oom]
---
## 현상
`metallb-controller-685b4dc4d8-jzxwj` 파드가 15시간 동안 5회 재시작.
`describe`로 확인한 이전 종료 상태가 `OOMKilled / Exit 137`.
## 근본원인
- controller limit: **64Mi** (helm 기본값)
- 실사용: **62Mi** (평상시만으로도 이미 한계)
- cert-rotation · webhook 서버 · reconcile 시 메모리 spike → OOM
metallb v0.15는 cert-controller와 webhook server가 controller 프로세스 안에서 실행되어 기본 64Mi로는 부족. speaker는 이미 256Mi/128Mi였는데 controller만 1/4 수준이었음.
## 조치
`helm upgrade --reuse-values`로 controller 리소스 상향:
```bash
helm upgrade metallb metallb/metallb -n metallb-system --reuse-values \
--set controller.resources.limits.memory=256Mi \
--set controller.resources.requests.memory=128Mi
```
결과:
- revision 3으로 배포
- 새 파드 `metallb-controller-6c846cbc7-gpz7q` Running
- 적용된 resources: `limits.memory=256Mi, requests.memory=128Mi`
- 재시작 0회로 안정
## 교훈
helm 기본 resources가 운영 환경에서 부족한 경우가 흔함. 설치 시점에 반드시 기본값 리뷰 필요. 이번 외에도 chart 기본값으로 영구화가 안 돼 있던 건들은 [[2026-04-19-k3s-resource-requests|history]] 참고.
## 정본 링크
- [[metallb|infra/network/metallb]]