Kubernetes v1.32 미리보기

Jmnote (토론 | 기여)님의 2024년 11월 21일 (목) 01:08 판 (→‎API 제거)
Kubernetes v1.32 sneak peek
Kubernetes v1.32 미리보기

Kubernetes v1.32 출시일이 다가오며, 프로젝트는 더욱 발전하고 성숙해지고 있습니다. 프로젝트의 전반적인 건강을 위해 기능이 사용 중단되거나 제거되거나 더 나은 기능으로 대체될 수 있습니다.

이 블로그는 Kubernetes v1.32 릴리스에서 계획된 몇 가지 변경사항을 소개합니다. 이는 Kubernetes 환경을 계속 유지관리하고 최신 변경사항을 따라잡기 위해 릴리스 팀이 주목해야 한다고 생각하는 사항입니다. 아래에 나열된 정보는 v1.32 릴리스의 현재 상태를 기반으로 하며, 실제 릴리스 날짜 전에 변경될 수 있습니다.

1 Kubernetes API 제거 및 사용 중단 프로세스

Kubernetes 프로젝트에는 잘 문서화된 기능 사용중단 정책이 있습니다. 이 정책에 따르면, 안정적인 API는 새롭고 안정적인 API 버전이 제공될 때에만 사용중단될 수 있으며, API는 안정성 수준에 따라 최소 수명의 기준이 있습니다.

  • 안정적인(GA) API 버전은 사용 중단될 수 있지만 Kubernetes의 주요 버전 내에서는 제거되지 않아야 합니다.
  • 베타 또는 사전 릴리스 API 버전은 사용 중단 후 3개 릴리스 동안 지원되어야 합니다.
  • 알파 또는 실험적 API 버전은 사전 사용 중단 공지 없이 제거될 수 있습니다.

API가 베타에서 안정적인 상태로 승격되었든 해당 API가 성공하지 못해 제거되었든, 모든 제거는 이 정책을 준수합니다. API가 제거될 때마다 사용중단 가이드에서 마이그레이션 옵션이 제공됩니다.

2 기존 DRA 구현의 제거에 대한 알림

개선사항 #3063은 Kubernetes 1.26에서 동적 리소스 할당(DRA)을 도입했습니다.

그러나 Kubernetes v1.32에서는 DRA에 대한 이 접근 방식이 상당히 변경됩니다. 원래 구현과 관련된 코드는 제거되고 KEP #4381이 "새로운" 기본 기능으로 남게 됩니다.

이 변경 결정은 클러스터 오토스케일링과의 비호환성 때문입니다. 자원 가용성이 투명하지 않아 Cluster Autoscaler와 컨트롤러의 의사 결정이 복잡해졌습니다. 새로운 Structured Parameter 모델이 기존 기능을 대체합니다.

이 제거로 인해 Kubernetes는 새로운 하드웨어 요구사항과 자원 요청을 예측 가능하게 처리할 수 있으며, kube-apiserver로의 복잡한 API 호출을 피할 수 있습니다.

자세한 내용은 개선사항 이슈 #3063을 참조하세요.

3 API 제거

Kubernetes v1.32에서 제거될 예정인 API는 다음과 같습니다:

  • FlowSchema와 PriorityLevelConfiguration의 flowcontrol.apiserver.k8s.io/v1beta3 API 버전이 제거됩니다. 이를 대비하려면 기존 매니페스트를 수정하고 클라이언트 소프트웨어를 flowcontrol.apiserver.k8s.io/v1 API 버전을 사용하도록 다시 작성하세요.

v1 버전은 v1.29부터 사용가능합니다. 모든 기존 객체는 새 API를 통해 액세스할 수 있습니다. flowcontrol.apiserver.k8s.io/v1beta3의 주요 변경사항은, PriorityLevelConfiguration의 spec.limited.nominalConcurrencyShares 필드가 지정되지 않은 경우 기본값 30으로 설정되고, 명시적 값 0인 경우 30으로 변경되지 않다는 것입니다.

추가 정보는 API 사용중단 가이드를 참조하세요.

4 Kubernetes v1.32의 주요 기능

다음은 v1.32 릴리스에 포함될 가능성이 높은 기능 목록입니다. 이는 최종 확정된 내용이 아니며, 릴리스 내용은 변경될 수 있습니다.

4.1 Dynamic Resource Allocation(DRA)의 추가 개선

Kubernetes v1.32에서도 DRA에 대한 개선이 계속됩니다. GPU, FPGA, 네트워크 어댑터와 같은 특수 하드웨어를 요구하는 워크로드를 위한 자원 할당의 유연성과 효율성을 개선하기 위한 여러 기능이 포함됩니다.

4.2 Pod 상태에 자원 상태 추가

KEP #4680에서 제안된 내용으로, 디바이스가 실패했거나 일시적으로 비정상인 경우 이를 Pod 상태에서 노출하여 문제 해결을 용이하게 합니다.

4.3 Windows 노드의 종료 지원

KEP #4802: Kubernetes는 이제 Windows 노드의 시스템 종료 이벤트를 올바르게 처리할 수 있습니다. 이는 Windows 노드에서 실행 중인 Pod이 우아하게 종료되도록 하여 워크로드가 중단 없이 다시 예약될 수 있도록 합니다.

4.4 환경 변수에 특수 문자 허용

Kubernetes는 이제 =을 제외한 대부분의 ASCII 문자를 환경 변수 이름으로 사용할 수 있습니다. 이는 다양한 애플리케이션 요구사항을 충족하며 개발자의 유연성을 높입니다.

4.5 LoadBalancer 동작 인식

KEP #1860: LoadBalancer 유형의 서비스에 대해 ipMode 필드를 추가하여 VIP 또는 Proxy로 설정할 수 있습니다.

4.6 Generate Name의 자동 충돌 재시도

API 서버는 이제 generateName 필드를 사용하는 리소스 생성 시 이름 충돌이 발생하면 최대 7번까지 자동으로 이름 생성을 재시도합니다.

5 더 많은 정보를 원하십니까?

Kubernetes 릴리스 노트에서 새로운 기능과 사용중단에 대한 공지가 발표됩니다. 이 릴리스의 CHANGELOG의 일부로 Kubernetes v1.32의 새로운 기능을 공식적으로 발표합니다.

릴리스 노트에서 변경사항 발표를 확인할 수 있습니다.

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}