December 17, 2025 에 kubernetes v1.35 이 출시 되었습니다.
개인적으로 기대했던 In-Place Pod Resize 이 GA로 되어서
이전에 pod 실행, 재실행시 부팅 스파이크로 인한 request 조절을 못했는데 할수있게 되었습니다!
이에 대한 자세한내용은
https://rainbound.tistory.com/1357 에서 확인하세요!
이 버전은 “무엇을 더 제공할 것인가”보다 “무엇을 끝내고, 어떤 방향으로 정렬할 것인가” 입니다.
핵심 키워드는 다음 네 가지다.
- 재시작 없는 리소스 변경
- 런타임 구조 정리
- 리소스 제어의 예측 가능성
- 리눅스 네이티브 네트워크 스택으로의 수렴
1. v1.35에서 새로 추가·안정화된 기능
1️⃣ In-Place Pod Resize (GA)
기능 요약
- 실행 중인 Pod의 CPU / Memory request·limit을 재시작 없이 변경
- v1.35에서 GA 승격
resources:
requests:
cpu:"500m"→"1"
memory:"512Mi"→"1Gi"
GitOps 관점
- Git 변경
- ArgoCD / Flux Sync
- Pod UID 유지
- ReplicaSet 변경 없음
- 컨테이너 프로세스 지속 실행
yaml 변경 = rollout이라는 Kubernetes의 오랜 전제가 처음으로 깨짐
2️⃣ Structured Authentication Configuration (GA)
- API Server 인증 설정을 구조화된 파일 기반으로 관리
- 다중 OIDC 설정을 명확히 분리 가능
- 인증 설정의 가독성·유지보수성 개선
3️⃣ Job managedBy 필드 (GA)
- Job을 외부 컨트롤러가 관리하도록 명시 가능
- Kubernetes 기본 Job 컨트롤러와 책임 분리
- 배치·워크플로우 시스템과의 통합 강화
4️⃣ PreferSameNode Service Traffic (GA)
- Service 트래픽을 같은 노드의 엔드포인트 우선으로 라우팅
- 네트워크 홉 감소
- 로컬 캐시·사이드카 패턴에 유리
5️⃣ Beta / Alpha 주요 기능
Beta
- Pod Certificates (Pod 단위 인증서 자동 발급)
- StatefulSet maxUnavailable
- Storage Version Migration 안정화
Alpha
- Gang Scheduling (AI / ML 분산 워크로드용)
- Node Declared Features
2. v1.35에서 삭제되거나 종료되는 기능
v1.35의 가장 중요한 특징은 과감한 정리다.
1️⃣ cgroups v1 완전 제거 ❌
| 항목 | 상태 |
| cgroups v1 | 지원 종료 |
| cgroups v2 | 필수 |
의미
- 리소스 제어는 이제 단일 계층 모델만 허용
- OOM, CPU throttling, QoS 예측 가능성 상승
- In-Place Pod Resize의 기술적 기반
v1.35는 “cgroups v2 전제 Kubernetes”의 시작점
2️⃣ containerd v1.x 지원 종료 ❌
| 항목 | 상태 |
| containerd 1.x | 마지막 지원 |
| containerd 2.0 | 권장 / 사실상 필수 |
의미
- CRI와 런타임의 분리
- 모듈형 아키텍처
- 장기 유지보수 목적
3️⃣ kube-proxy IPVS 모드 제거 ❌
| 항목 | 상태 |
| iptables | 유지 |
| IPVS | 제거 |
| nftables | 권장 |
배경
- IPVS는 성능은 좋지만 관리 복잡
- iptables + IPVS 이중 구조 문제
- Linux 커널 네트워크 표준은 nftables
Kubernetes는 “특수 고성능”보다 표준·단순성을 선택
4️⃣ 레거시 / 비표준 API 정리
- 오래된 Beta API 제거
- Deprecated 필드 삭제
- 저장 버전 정합성 강화
→ 업그레이드 시 CRD / Custom Controller 검증 필수
3. 구조 변화의 핵심 축
1. containerd v2.0 – 런타임 구조의 재정의
v1.x의 한계
containerd v1.x는 Kubernetes CRI와 강하게 결합된 구조였다.
- CRI 변경 → 런타임 전체 영향
- Kubernetes 중심 설계
- 장기 유지보수에 불리
v2.0의 핵심 변화
| 구분 | v1.x | v2.0 |
| 구조 | 단일 데몬 | 모듈형 (core + plugins) |
| CRI | 내장 | CRI 분리 (plugin) |
| 확장성 | 제한적 | 플러그인 단위 확장 |
핵심은 단순하다.
“컨테이너 런타임”과
“쿠버네티스용 인터페이스(CRI)”를 분리
Kubernetes가 v2.0을 요구하는 이유
- 런타임 안정성 향상
- Kubernetes 외 워크로드 재사용
- 장기 지원 구조
Kubernetes v1.35부터는 containerd 2.0 이상이 사실상 기준이 된다.
2. cgroups v2 – 리소스 제어의 일관성
v1의 구조적 문제
cgroups v1은 컨트롤러마다 서로 다른 트리를 사용했다.
- CPU / Memory / IO 제어 모델 불일치
- Pod QoS 예측 어려움
- OOM, Throttling이 불안정
cgroups v2의 변화
| 항목 | v1 | v2 |
| 트리 구조 | 분리 | 단일 통합 트리 |
| CPU | cpu.shares | cpu.weight |
| Memory | memory.limit | memory.high / max |
| 계층 전파 | 불명확 | 명확 |
리소스 제어가 부모 → 자식 구조로 정확히 전파된다.
In-Place Pod Resize와의 관계
In-Place Pod Resize가 가능한 이유는:
- kubelet이
- cgroups v2를 통해
- 실행 중인 프로세스의 리소스 한계를 즉시 변경 가능해졌기 때문
즉,
In-Place Pod Resize의 기반은 cgroups v2
3. kube-proxy: IPVS → nftables
IPVS의 특징
| 장점 | 단점 |
| L4 성능 우수 | 커널 모듈 의존 |
| 대규모 Service 처리 | 관리 복잡 |
| 별도 테이블 | iptables와 이중 관리 |
nftables의 특징
| 특징 | 의미 |
| Netfilter 표준 | iptables 후속 |
| 단일 rule set | 관리 단순 |
| 커널 방향성 | 장기 지원 |
Kubernetes는 “특수한 고성능”보다
“표준 + 유지보수성”을 선택했다.
4. 이 모든 변화가 의미하는 것
v1.35는 기능 추가보다 운영 패러다임을 바꾼 버전이다.
cgroups v2
↓
In-Place PodResize
↓
GitOps 무재시작 리소스 조정
containerd v2.0
↓
CRI 분리
↓
런타임 안정성
IPVS 제거
↓
nftables 표준화
↓
네트워크 운영 단순화
최종 요약
- 추가
- In-Place Pod Resize (GA)
- 구조화된 인증 설정
- Job 외부 관리
- 서비스 트래픽 최적화
- 삭제
- cgroups v1
- containerd v1.x
- kube-proxy IPVS
- 결과
- 재시작 없는 운영
- 예측 가능한 리소스 제어
- 표준 중심 Kubernetes
'K8S' 카테고리의 다른 글
| Kubernetes Pod 부팅 스파이크, 어떻게 해결할까? (0) | 2026.01.15 |
|---|---|
| Kubernetes에서 Prometheus 장기 저장 전략(Thanos vs Grafana Mimir ) (0) | 2026.01.02 |
| k9s 사용법 - v.50.x (1) | 2025.12.31 |
| kubernetes의 Request (0) | 2025.12.23 |
| Kubernetes HPA 설계, 웹 API는 정말 CPU-Only가 표준일까? (0) | 2025.12.02 |
댓글