오픈소스 인사이트
home
오픈소스 기술 동향
home
🚀

Kubernetes v1.35: Timbernetes 릴리즈 소식

Kubernetes v1.35: Timbernetes (The World Tree Release) 릴리즈 소식

릴리즈 정보

릴리즈 일자: 2025년 12월 17일
릴리즈 주기: 정규(Minor) 릴리즈
지원 기간: 2027년 2월 28일까지 (약 14개월)
호환성: v1.33 ~ v1.37 호환
다음 릴리즈: v1.36 (예정: 2026년 4월)

한눈에 보기

핵심 메시지: v1.35는 AI/ML, HPC(고성능 컴퓨팅), 상태 저장(Stateful) 워크로드 등 시스템의 '뿌리'를 강화하고 제로 트러스트 보안 기반을 완성한 릴리즈입니다.
Pod 리소스 무중단 변경(In-place Resize) 이 GA로 승격되었으며, cgroup v1 지원 중단(Beta) 과 IPVS 모드 Deprecation 을 통해 미래 지향적인 아키텍처로 전환을 가속화합니다.
이번 릴리즈는 총 60개의 KEP(Stable: 17, Beta: 19, Alpha: 22)를 포함하고 있습니다.
주요 변화 요약
In-place Update of Pod Resources (GA): Pod 재시작 없는 리소스 실시간 조정.
Support for User Namespaces (Stable): 컨테이너 보안을 위한 UID/GID 매핑 공식 지원.
Improved Pod Stability (Beta): Kubelet 재시작 시 Pod 안정성 강화.
Node Declared Features (Alpha): 스케줄링 전 노드 특성 선언으로 AI/ML 배치 최적화.

즉시 확인 필요사항

Breaking Changes & API 변경

업그레이드 전 필수 확인사항:
변경사항
영향 범위
대응 방법
긴급도
cgroup v1 지원 중단
Node/Kubelet
failCgroupV1=true가 기본값이 됨. 구형 OS(CentOS 7 등) 사용 시 노드 시작 실패. cgroup v2로 마이그레이션 필수.
High
SPDY → WebSockets 전환
CLI/API Server
kubectl execattach 등의 스트리밍 방식이 변경됨. 중간 프록시/L7 장비의 WebSocket 허용 여부 확인 필요.
High
IPVS 모드 Deprecated
Network (kube-proxy)
IPVS 모드가 공식적으로 deprecated됨. 향후 nftables 모드로의 전환 준비 필요.
Medium
v1alpha1 API 제거
Storage
VolumeAttributesClass 리소스가 v1alpha1에서 제거됨.
Medium

주요 추가 기능 & 개선사항

플랫폼 & 인프라 및 보안

In-Place Update of Pod Resources (Stable)

요약: Pod나 컨테이너를 재시작하지 않고도 실행 중인 Pod의 resources.requests 및 limits를 수정할 수 있습니다.
왜 중요한가요?
비즈니스 연속성: 게임 서버나 대규모 Java 애플리케이션 등 기동 시간이 긴 워크로드를 중단 없이 확장할 수 있습니다.
비용 최적화: VPA(Vertical Pod Autoscaler)와 연계하여 리소스 낭비를 실시간으로 줄일 수 있습니다.
성능 가변성: 배치가 실행 중일 때 일시적으로 자원을 늘려 처리 속도를 높이는 작업이 가능합니다. 주의 사항: 컨테이너 런타임(CRI)과 Kubelet이 리사이징을 지원해야 하며, 리소스 하향 조정 시 애플리케이션 OOM 발생 위험을 고려해야 합니다.
어떻게 사용하나요?
# 실행 중인 Pod의 리소스를 직접 수정 (Patch) # Kubelet이 재시작 없이 커널의 cgroup 설정을 즉시 업데이트함 apiVersion: v1 kind: Pod metadata: name: dynamic-app spec: containers: - name: main image: my-app:latest resources: requests: cpu: "1" memory: "2Gi"
YAML
복사
혹은 아래와 같이 사용할 수 있습니다.
# kubectl patch를 사용하여 실행 중인 Pod의 CPU/Memory를 즉시 변경 kubectl patch pod my-app --patch '{"spec":{"containers":[{"name":"main","resources":{"requests":{"cpu":"2"},"limits":{"cpu":"4"}}}]}}'
Bash
복사
타겟 유저: 플랫폼 엔지니어, DevOps
상세 가이드In-Place Pod Resize 공식 블로그 |  KEPKEP-1287

Pod Certificates (Beta) • KEP-4317

요약: Kubelet이 직접 키를 생성하고 API 서버를 통해 인증서를 발급받아 Pod 파일시스템에 마운트해주는 기능입니다.
왜 중요한가요?
보안 가치cert-manager와 같은 외부 의존성 없이 mTLS 환경을 구성할 수 있습니다.
자동 갱신: Kubelet이 인증서 만료 전 자동으로 로테이션을 수행하여 운영 부담을 제거합니다.
위험 완화: 노드 제한(Node Restriction) 정책이 강화되어 공격자가 다른 노드의 ID를 탈취하는 것을 방지합니다.
타겟 유저: 보안 엔지니어, 클러스터 관리자
상세 가이드워크로드 ID 보안 가이드 |  KEPKEP-4317

Support for User Namespaces in Pods (Stable) • KEP-127

요약: 컨테이너 내부의 root(UID 0)를 호스트의 일반 사용자 ID로 매핑하여 보안 격리를 강화합니다.
왜 중요한가요?
보안: 컨테이너가 침해당해 '탈옥'하더라도 호스트 시스템에서는 권한이 없는 일반 사용자로 취급되어 시스템 전체 피해를 막습니다.
주의 사항: 볼륨 마운트 시 ID 매핑 호환성 문제가 발생할 수 있으며, 일부 구형 파일 시스템에서는 동작이 제한됩니다.
타겟 유저: 보안 엔지니어, 클러스터 관리자
상세 가이드User Namespaces 가이드 |  KEPKEP-127

Node declared features before scheduling (Alpha) • KEP-5328

요약: 노드가 Ready 상태가 되기 전, 자신이 보유한 특수 하드웨어(GPU, FPGA, 특정 CPU 명령어 등)를 스케줄러에 선언합니다.
왜 중요한가요?
정밀한 배치: 스케줄러가 노드 기능을 미리 알고 Pod를 배치하여, 잘못된 배치로 인한 에러를 방지합니다.
주의 사항: Alpha 기능으로 Feature Gate 활성화가 필요하며, 선언된 기능 데이터의 일관성 관리가 중요합니다.
KEPKEP-5328

성능 & 확장성

AI/ML을 위한 Gang Scheduling (Alpha) • KEP-4671

요약: AI/ML 학습과 같은 분산 워크로드를 위해 '전부 아니면 전무(All-or-Nothing)' 스케줄링이 도입되었습니다.
왜 중요한가요?
최소 요구 자원(minCount)이 확보되지 않으면 어떤 Pod도 배치하지 않아 자원 교착 상태(Deadlock)를 방지합니다.
KEPKEP-4671

애플리케이션 개발 및 운영

kubectl kuberc 도입 (Alpha) • KEP-3104

요약: 사용자별 개인 설정(Alias, Flag 등)을 kubeconfig와 분리하여 관리할 수 있는 설정 파일이 도입되었습니다.
왜 중요한가요?
클러스터 접속 정보와 개인의 CLI 사용 선호 설정을 분리하여 관리 생산성을 높입니다.
어떻게 사용하나요?
~/.kube/kuberc 파일에 자주 사용하는 설정을 정의합니다.
# ~/.kube/kuberc 예시 aliases: gp: get pods dd: describe deployment defaults: output: wide
YAML
복사
KEPKEP-3104

VolumeSource: OCI artifact and/or image (Alpha) • KEP-4639

요약: 별도의 컨테이너 기동 없이 OCI 이미지(또는 Artifact) 자체를 볼륨으로 직접 마운트하여 데이터를 사용합니다.
왜 중요한가요?
데이터 배포: AI 모델, 설정 파일 등을 이미지 형태로 배포하고 initContainer 없이 즉시 읽기 전용 볼륨으로 사용 가능.
주의 사항: 기본적으로 Read-Only로 마운트되며, 프라이빗 레지스트리 인증 설정이 선행되어야 합니다.
어떻게 사용하나요?
volumes: - name: model-volume image: reference: my-registry.com/llama-3-model:v1.0
YAML
복사
KEPKEP-4639

Fine-grained Container restart rules (Beta) • KEP-5307

요약: Pod 내의 개별 컨테이너마다 서로 다른 재시작 정책을 적용할 수 있습니다.
사이드카 제어: 메인 작업 종료 후에도 계속 살아있는 사이드카 컨테이너 문제를 해결합니다.
왜 중요한가요?
메인 컨테이너 종료 후에도 살아있는 사이드카 문제를 해결하거나, 특정 보조 컨테이너만 무한 재시작되도록 설정할 수 있습니다.
주의 사항: 컨테이너 간의 실행 순서 및 의존성 설계를 정교하게 해야 합니다.
KEPKEP-5307

Improved Pod stability during kubelet restarts (Beta) • KEP-4781

요약: Kubelet이 업데이트나 장애로 재시작될 때, 실행 중인 Pod의 상태를 더 안정적으로 유지하고 불필요한 컨테이너 종료를 방지합니다.
왜 중요한가요?
운영 안정성: 노드 관리 작업 중 발생할 수 있는 일시적인 서비스 단절을 최소화합니다.
주의 사항: Graceful Shutdown 설정과 연계하여 테스트해야 하며, 비정상 종료 상황에서의 복구 시나리오 확인이 필요합니다.
KEPKEP-4781

Reliable Pod update tracking with .metadata.generation (Stable) • KEP-5067

요약: Pod 리소스에 .metadata.generation 필드를 도입하여, Pod Spec의 변경 사항을 버전별로 추적할 수 있습니다.
왜 중요한가요?
신뢰성: 컨트롤러나 GitOps 도구가 Pod가 최신 설정으로 업데이트되었는지 확실히 판단 가능.
주의 사항: 해당 필드는 읽기 전용이며 시스템에 의해 자동 증가합니다.
KEPKEP-5067

운영 관점에서의 변화

Deprecations & Community Updates

Ingress NGINX Retirementkubernetes/ingress-nginx 프로젝트가 커뮤니티 유지보수 모드로 전환되었습니다. 이는 쿠버네티스 공식 조직이 Gateway API로 리소스를 집중하기 위함이며, 사용자는 Gateway API 기반의 컨트롤러(Envoy, Istio 등)로의 전환을 고려해야 합니다.
Legacy Cloud Provider Removal: 인트리(In-tree) 클라우드 프로바이더 코드가 대거 제거되었습니다. 외부 클라우드 컨트롤러 매니저(CCM) 사용이 필수입니다.

모니터링 & 관찰가능성

Kubelet 이미지 매니저 메트릭kubelet_image_manager_ensure_image_requests_total 추가로 이미지 풀링 성공/실패 여부를 더 정교하게 트래킹 가능.
리소스 리사이징 이벤트: In-place 업데이트 시 Pod 이벤트에 상세 변경 이력이 남도록 개선되었습니다.

리소스 관리

PreferSameNode 서비스 트래픽 (Stable): 트래픽을 최대한 동일 노드 내의 Pod로 유도하여 네트워크 지연시간을 줄이고 통신 비용을 절감합니다. (KEP-3015)

알려진 주요 이슈

현재 알려진 문제

이슈
영향도
임시 해결책
수정 예정
WebSocket 프록시 호환성
High
일부 구형 L7 프록시에서 exec 끊김 현상 발생
프록시 설정에서 WebSocket 업그레이드 활성화
Memory Limit 하향 시 OOM
Medium
실행 중 메모리 한도를 현재 사용량보다 낮게 잡을 경우 OOM 발생 가능
하향 조정 전 현재 사용량 모니터링 필수
OCI Volume 인증 오류
Medium
imagePullSecrets를 명시적으로 볼륨 섹션에 확인
v1.35.x 패치

추가 학습 자료

핵심 KEP:

공식 문서

마이그레이션 가이드cgroup v1에서 v2로 전환하기

이번 릴리즈 주요 KEP 문서

Stable (GA) : 즉시 프로덕션 적용 권장

KEP-1287In-place Update of Pod Resources - Pod 재시작 없이 CPU/메모리 할당량을 실시간으로 조정.
KEP-127Support for User Namespaces in Pods - 호스트와 컨테이너 간 UID/GID 매핑을 통한 강력한 보안 격리.
KEP-5067Reliable Pod update tracking - .metadata.generation을 통한 Pod Spec 변경 이력의 신뢰성 확보.
KEP-3015PreferSameNode Traffic - 서비스 트래픽을 동일 노드 내 Pod로 우선 배정하여 지연 시간 감소.
KEP-3331Structured Authentication Config - API 서버 인증 설정을 파일 기반의 구조화된 형태로 관리.

Beta : 기본 활성화, 운영 환경 테스트 권장

KEP-4317Pod Certificates - Kubelet을 통한 워크로드 인증서 자동 발급 및 로테이션.
KEP-4781Improved Pod stability during kubelet restarts - 노드 컴포넌트 재시작 시 Pod 가동 중단 최소화.
KEP-5307Fine-grained Container restart rules - 사이드카 등 Pod 내 개별 컨테이너별 맞춤형 재시작 정책.
KEP-1309StatefulSet Parallel Update - maxUnavailable을 활용한 스테이트풀셋의 신속한 롤아웃.
KEP-5573Remove cgroup v1 support - 레거시 cgroup 지원 중단 및 v2 전환 프로세스 시작.

Alpha : 실험적 도입, 기능 게이트 활성화 필요

KEP-5328Node declared features - 스케줄링 전 노드의 특수 자원(GPU 등) 정보를 선언하여 배치 정확도 향상.
KEP-4671Gang Scheduling for AI/ML - 분산 학습을 위한 All-or-Nothing 방식의 자원 할당.
KEP-3104kubectl kuberc - 사용자별 kubectl 별칭(Alias) 및 기본 설정 파일 도입.
KEP-4639VolumeSource: OCI artifact/image - 별도 컨테이너 없이 OCI 이미지를 볼륨으로 직접 마운트.

맺음말

맺음말
Kubernetes v1.35 'Timbernetes' 릴리즈는 클러스터의 '뿌리'에 해당하는 핵심 성능을 강화하고, 현대적인 워크로드 요구사항에 맞춘 보안 체계를 완성하는 이정표가 될 것입니다. 이번 업데이트를 통해 기대할 수 있는 핵심적인 효과는 다음과 같습니다.
서비스 연속성과 리소스 관리의 혁신: In-place Update of Pod Resources(GA)의 도입으로 이제 긴 기동 시간이 필요한 애플리케이션도 중단 없이 리소스를 조정할 수 있게 되었습니다. 이는 VPA와의 시너지를 통해 클러스터 자원 활용 효율을 극대화하고 운영 비용을 절감하는 강력한 도구가 될 것입니다.
제로 트러스트 보안의 네이티브 구현: User Namespaces(Stable)Pod Certificates(Beta)는 외부 솔루션에 의존하지 않고도 강력한 격리와 인증 체계를 구축할 수 있게 해줍니다. 특히 Kubelet 주도의 인증서 자동 관리는 보안 운영의 복잡성을 획기적으로 낮추는 실질적인 개선입니다.
AI/ML 및 차세대 아키텍처로의 전환: Gang SchedulingNode Declared Features는 고성능 컴퓨팅 워크로드의 배치 정확도를 높여주며, cgroup v1 지원 중단IPVS의 Deprecation은 쿠버네티스가 더 빠르고 가벼운 미래형 아키텍처로 나아가기 위한 결단력 있는 진보를 보여줍니다.
이번 릴리즈가 제공하는 다양한 개선 사항들이 여러분의 인프라를 더욱 자동화되고 안정적으로 만드는 데 기여할 수 있기를 바랍니다.
이현승 프로
클라우드와 오픈소스 SW 관련 연구 개발 프로젝트들을 진행해왔고, 지금은 OSS 기술서비스와 아키텍처를 담당하고 있어요