metallb: raise controller mem limit 64Mi→256Mi (OOM fix)
This commit is contained in:
42
history/2026-04-20-metallb-controller-oom-fix.md
Normal file
42
history/2026-04-20-metallb-controller-oom-fix.md
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
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]]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: MetalLB (K3s LoadBalancer)
|
title: MetalLB (K3s LoadBalancer)
|
||||||
updated: 2026-03-26
|
updated: 2026-04-20
|
||||||
tags: [infra, k3s, metallb, networking]
|
tags: [infra, k3s, metallb, networking]
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -21,6 +21,15 @@ K3s 내장 ServiceLB(Klipper)는 비활성화 (`--disable servicelb`, kr2/kr1 co
|
|||||||
| Speaker | DaemonSet (노드당 1개, 3개) |
|
| Speaker | DaemonSet (노드당 1개, 3개) |
|
||||||
| Controller | Deployment (1개) |
|
| Controller | Deployment (1개) |
|
||||||
|
|
||||||
|
## 리소스 설정
|
||||||
|
|
||||||
|
| 컴포넌트 | requests mem | limits mem |
|
||||||
|
|---------|-------------|-----------|
|
||||||
|
| controller | 128Mi | 256Mi |
|
||||||
|
| speaker | 128Mi | 256Mi |
|
||||||
|
|
||||||
|
controller는 cert-rotation · webhook 서버 때문에 기본 limit(64Mi)으로는 OOM 발생. speaker와 동일 수준으로 맞춤. 이력: [[2026-04-20-metallb-controller-oom-fix|history]]
|
||||||
|
|
||||||
## IP 할당 현황
|
## IP 할당 현황
|
||||||
|
|
||||||
| IP | Service | Namespace | Port |
|
| IP | Service | Namespace | Port |
|
||||||
|
|||||||
Reference in New Issue
Block a user