RATATOSKRATATOSK
로그인

릴리즈

CNCF graduated·incubating 프로젝트 릴리즈 노트의 AI 분석.

프로젝트: Kubernetes해제 ×

Kubernetes

Kubernetes Core2026년 6월 12일

Kubernetes v1.36.2는 Dynamic Resource Allocation 스케줄러, CSI 볼륨 재퍼블리싱, 엔드포인트 컨트롤러의 치명적 버그를 고치고 Go 1.26.4로 빌드한 패치 릴리스입니다.

  • security바이너리 non-UTF8 Secret 데이터가 컨테이너 환경 변수에서 정상 처리됨

    Kubernetes 1.34 이상에서 바이너리 non-UTF8 데이터를 포함하는 Secret API 객체로부터 환경 변수를 설정하는 컨테이너가 제대로 읽을 수 없는 리그레션이 있었습니다. 1.36.2에서 수정되었습니다. 환경 변수에 텍스트가 아닌 Secret 데이터를 사용하는 워크로드가 있다면 업그레이드하여 디코딩 오류나 묵시적 실패를 예방하세요.

  • breakingDRA 디바이스 할당 버그, 멀티 디바이스 워크로드 영향

    Kubernetes 1.36.0–1.36.1에서 스케줄러가 SharedCounters를 사용하는 드라이버와 멀티 할당 가능 디바이스를 함께 쓸 때 상호 배타적 디바이스 파티션을 여러 Pod에 할당하는 버그가 있습니다. 워크로드 실패, 디바이스 충돌, 크래시, 데이터 손실을 초래할 수 있습니다. DRA를 멀티 할당 가능 디바이스(특히 GPU나 공유 카운터를 사용하는 커스텀 액셀러레이터)로 운영 중이면 1.36.2로 즉시 업그레이드하세요. 최근 Pod 스케줄링 결정을 검토하여 충돌이 없는지 확인하세요.

  • enhancementCSI 볼륨 재퍼블리싱 실패가 마운트 상태를 손상시키지 않음

    Kubelet이 주기적 NodePublishVolume 호출(requiresRepublish=true로 트리거됨)이 실패할 때 CSI 마운트 디렉터리를 잘못 삭제하여 Pod에 레거시 볼륨 콘텐츠가 남는 문제가 있었습니다. 1.36.2에서 수정됩니다. requiresRepublish=true인 CSI 드라이버를 운영 중이면 이 패치가 일시적 네트워크 또는 스토리지 오류로 인한 데이터 일관성 위험을 제거합니다. 업그레이드하여 잠재적 데이터 문제를 예방하세요.

주요 변경 (7)
  • Go 1.26.4로 빌드하여 런타임 안정성 개선
  • DRA 스케줄러에서 상호 배타적 디바이스 파티션을 여러 Pod에 할당하는 버그 수정 (워크로드 실패 또는 데이터 손실 위험)
  • DRA ResourceClaim의 allocationMode: All이 공유 카운터 디바이스를 선택할 때 kube-scheduler 패닉 수정
  • CSI NodePublishVolume 주기적 호출 실패 시 kubelet이 마운트 디렉터리를 잘못 삭제하는 버그 수정 (레거시 볼륨 콘텐츠 남음)
  • 중단된(suspended) Job의 spec 수정이 JobSuspended 조건 미설정 시 거부되는 리그레션 수정
  • IPFamilies 필드가 비어있는 서비스에서 엔드포인트 컨트롤러 패닉 수정
  • Secret API 객체의 바이너리 non-UTF8 데이터로부터 설정된 컨테이너 환경 변수 처리 수정
원문

Kubernetes

Kubernetes Core2026년 6월 12일

Kubernetes v1.35.6은 다중 노드 DRA 클레임 스케줄링, CSI 볼륨 재발행, 엔드포인트 처리의 심각한 버그를 수정하고 Go 1.25.11로 업그레이드했습니다.

  • securitySecret 바이너리 데이터의 환경 변수 처리 버그 수정

    1.34+ 버전의 바이너리 데이터(인증서, base64 인코딩된 키 등)를 포함한 Secret에서 환경 변수를 주입하지 못하는 버그가 있었습니다. Secret을 환경 변수로 주입 중이고 그 Secret에 바이너리 데이터가 있다면 v1.35.6으로 업그레이드하세요. 데이터베이스 자격증명이나 키를 Secret 환경 변수로 실행 중이면 버그가 조용히 주입을 깨뜨렸을 수 있으니 빨리 테스트하세요.

  • breaking빌드 파이프라인의 Go 런타임을 1.25.11로 업그레이드

    Kubernetes v1.35.6은 Go 1.25.11로 빌드됩니다. 커스텀 컨트롤러나 오퍼레이터를 같은 Go 버전에서 실행 중이면 호환성을 확인하고 다시 빌드하세요. CI/CD에서 Go 버전을 고정 중이면 빌드 설정을 업데이트해야 합니다.

  • enhancementDRA 스케줄링과 CSI 재발행이 안정화됨

    세 가지 버그가 해결되었습니다. (1) 공유 카운터를 사용하는 DRA ResourceClaim AllocationMode All에서 스케줄러 패닉 제거. (2) 다중 노드와 노드별 클레임을 함께 사용하는 파드가 더 이상 Pending에서 교착되지 않음. (3) NodePublishVolume 오류 시 kubelet이 마운트 디렉터리를 삭제하지 않아 오래된 볼륨 데이터 손상 방지. DRA나 CSI 재발행을 사용 중이면 이전에 교착 상태가 되던 상황이 제거됩니다. 업그레이드하여 막힌 파드를 정리하고 향후 장애를 방지하세요.

주요 변경 (6)
  • Go 1.25.11로 런타임 업그레이드
  • 다중 노드와 노드별 DRA 클레임을 함께 사용할 때 파드 스케줄링 교착 상태 해결
  • 공유 카운터를 사용하는 DRA ResourceClaim으로 인한 kube-scheduler 패닉 수정
  • NodePublishVolume 주기적 실패 시 kubelet이 CSI 마운트 디렉터리를 삭제하던 문제 해결
  • 빈 IPFamilies 필드를 가진 서비스 처리 시 엔드포인트 컨트롤러 패닉 수정
  • Secret의 바이너리 비UTF8 데이터를 포함한 환경 변수 처리 개선
원문

Kubernetes

Kubernetes Core2026년 6월 12일

쿠버네티스 v1.34.9는 CSI 마운트 볼륨 처리, 바이너리 Secret 데이터 처리, 엔드포인트 컨트롤러 패닉, kubeadm 인증서 처리를 수정합니다. Go 1.25.11 빌드로 런타임 성능이 향상됩니다.

  • breakingrequiresRepublish가 활성화된 CSI 드라이버 운영 중이면 kubelet 업그레이드

    v1.34 회귀로 인해 kubelet이 republish 실패 시 CSI 마운트 디렉터리를 삭제해 포드에 오래된 볼륨 데이터가 남아있었습니다. spec.requiresRepublish=true로 설정된 CSI 드라이버를 운영 중이면 즉시 업그레이드하세요. kubelet 로그에서 실패한 republish 시도를 확인한 후 업그레이드하면 이 버그를 맞고 있었는지 파악할 수 있습니다.

  • breaking바이너리 Secret을 환경 변수로 주입하는 워크로드 테스트

    v1.34에서 바이너리(non-UTF8) 데이터가 포함된 Secret을 참조하는 환경 변수 파싱이 깨졌습니다. 워크로드에서 Secret을 환경 변수로 주입한다면 업그레이드 후 테스트하세요. 애플리케이션 시작 로그에서 파싱 오류를 확인하고, 필요하면 바이너리 Secret 값을 base64로 인코딩해야 할 수도 있습니다.

  • enhancementGo 런타임 업데이트로 성능과 보안 강화

    v1.34.9는 Go 1.25.11을 사용하며, 런타임 최적화와 보안 패치를 포함합니다. 제어 플레인과 워커 노드를 다음에 순환 업그레이드할 때 반영하세요. 애플리케이션 코드 수정은 불필요하지만, Go 업데이트로 인해 클러스터 지연 시간이 감소하고 메모리 사용량이 줄어들 수 있습니다.

주요 변경 (5)
  • Go 1.25.11로 빌드되어 성능 및 보안 패치 개선
  • CSI republish 오류 후 마운트 디렉터리를 삭제하던 kubelet 버그 수정
  • 빈 IPFamilies 필드를 가진 서비스 처리 시 엔드포인트 컨트롤러 패닉 수정
  • 바이너리 non-UTF8 데이터를 포함한 Secret을 참조하는 컨테이너 환경 변수 파싱 회귀 버그 수정
  • kubeadm 인증서 dry-run 모드에서 기존 CA 파일을 올바르게 복사하도록 수정
원문

Kubernetes

Kubernetes Core2026년 5월 12일

v1.36.1은 ZFS 노드, Windows 네트워킹, kubeadm 클러스터 관리 등 8개 버그를 수정한 패치 릴리스입니다.

  • breakingZFS 노드 운영 중이라면 즉시 업그레이드 필요

    v1.36.0에서 cadvisor 플러그인 누락으로 ZFS 스토리지를 사용하는 노드의 kubelet이 시작되지 않습니다. v1.36.0을 ZFS 환경에 배포했다면 해당 노드들이 정상 작동하지 않을 가능성이 높으니, 추가 롤아웃 전에 반드시 v1.36.1로 패치하세요.

  • breakingWindows L2Bridge 사용자: DNS 타임아웃의 근본 원인 해소

    파드 IP가 재사용될 때 오래된 HNS 엔드포인트가 남아 트래픽이 엉뚱한 노드로 라우팅되는 문제였습니다. 증상이 DNS 설정 오류처럼 보여 원인 파악이 어렵습니다. Windows 노드에서 L2Bridge 네트워킹을 쓴다면 우선순위를 높여 이번 패치를 적용하세요.

  • enhancementkubeadm 부트스트랩, 느린 로드밸런서 환경에서도 안정화

    클라우드 환경에서 LB가 비동기로 프로비저닝될 때 kubeadm init이 실패하거나 의도치 않게 동작하는 경우가 있었습니다. 이제 부트스트랩 중에는 로컬 API 엔드포인트를 먼저 사용하고 이후 LB 엔드포인트로 전환하는 방식으로 수정됐습니다. 다음 클러스터 초기화나 업그레이드 전에 이 버전으로 올려두는 게 좋습니다.

주요 변경 (5)
  • ZFS 노드에서 kubelet이 기동되지 않던 cadvisor 플러그인 누락 문제 수정
  • Windows L2Bridge 환경에서 파드 IP 재사용 시 발생하던 HNS 엔드포인트 오염 및 DNS 타임아웃 수정
  • 대규모 클러스터(엔드포인트 1000개 이상)에서 kube-proxy의 불필요한 전체 동기화 작동 방지
  • kubeadm init 시 LB가 늦게 프로비저닝되는 환경에서 로컬 API 엔드포인트 우선 사용하도록 개선
  • kubeadm etcd 상태 확인 방식을 쿼럼 기반으로 변경, kube-apiserver용 전용 ClusterRole 분리
원문

Kubernetes

Kubernetes Core2026년 5월 12일

Kubernetes v1.35.5는 스케줄러 상태 오염, Windows 네트워킹, kube-proxy 대규모 클러스터 동작, kubeadm 초기화 문제를 수정한 패치 릴리스입니다.

  • breakingkubeadm 사용자: 업그레이드 후 kubeconfig 생성 동작 확인 필요

    kubeadm init이 admin.conf와 super-admin.conf 생성 시 controlPlaneEndpoint 대신 localAPIEndpoint를 사용하도록 바뀌었습니다. 커스텀 controlPlaneEndpoint 설정을 쓰는 클러스터라면 업그레이드 후 생성된 kubeconfig가 올바른지 반드시 검증하세요. 초기화 후 tooling이 controlPlaneEndpoint 기반 kubeconfig를 참조한다면 스테이징에서 먼저 테스트하는 것을 권장합니다.

  • enhancement대규모 클러스터: kube-proxy 업그레이드로 불필요한 전체 동기화 차단

    엔드포인트가 1000개를 넘는 환경에서 kube-proxy가 불필요한 full-sync를 반복 실행하고 있었습니다. 이번 패치로 해당 동작이 멈추므로, 바쁜 클러스터의 CPU와 네트워크 오버헤드를 직접 줄일 수 있습니다. 다음 유지보수 윈도우에 kube-proxy 업그레이드를 포함시키세요.

  • enhancement스케줄러 메모리 누수 수정 — 스케줄링 불안정 증상이 있다면 즉시 적용하세요

    동일한 이름의 Pod가 스케줄링 실패를 반복할 때 in-flight 상태 추적 데이터가 무한 증가하는 버그였습니다. 스케줄러 메모리 사용량이 지속적으로 증가하거나 스케줄링 지연이 관찰됐다면, 이 패치가 근본 원인을 해결합니다.

주요 변경 (5)
  • 스케줄러 버그 수정: 스케줄링 실패 후 동일한 이름으로 Pod를 교체할 때 in-flight 큐 상태가 누적되던 문제(메모리 무제한 증가 가능)
  • Windows L2Bridge 네트워크 수정: 노드 간 Pod IP 재사용 시 오래된 HNS 엔드포인트가 정리되지 않아 발생하던 DNS 타임아웃 해결
  • kube-proxy가 대규모 클러스터(엔드포인트 1000개 이상)에서 불필요한 전체 동기화를 수행하지 않도록 수정
  • kubeadm init 시 admin kubeconfig에 controlPlaneEndpoint 대신 localAPIEndpoint를 사용하도록 변경 — 느린 로드밸런서 환경의 부트스트랩 실패 해결
  • kubeadm etcd 상태 확인이 전체 멤버 대신 쿼럼 기반으로 동작하도록 개선
원문

Kubernetes

Kubernetes Core2026년 5월 12일

v1.34.8은 IPv6 CIDR 주소 할당 오류, 스케줄러 메모리 누수, Windows DNS 라우팅 장애, kubeadm 클러스터 부트스트랩 문제를 수정한 버그 픽스 패치입니다.

  • securitykubeadm: kube-apiserver kubelet 접근에 전용 ClusterRole 적용

    kube-apiserver의 kubelet 클라이언트가 이제 공용 역할 대신 'system:kubelet-api-admin' 전용 ClusterRole에 바인딩됩니다. kubeadm으로 관리되는 클러스터는 업그레이드 시 자동으로 적용되지만, 업그레이드 후 'kubectl get clusterrolebinding'으로 실제 적용 여부를 확인하는 것을 권장합니다.

  • breakingIPv6 클러스터: 업그레이드 전 ServiceCIDR 할당 상태 점검 필요

    64비트 IPv6 ServiceCIDR 버그로 인해 일부 클러스터에서 서브넷 범위를 벗어난 서비스 IP가 할당되어 있을 수 있습니다. v1.34.8로 업그레이드한 뒤 기존 서비스 IP가 설정된 서브넷 내에 있는지 확인하고, 범위를 벗어난 서비스는 재생성을 검토하세요. /64 IPv6 서비스 CIDR을 사용하는 클러스터에서 특히 확인이 필요합니다.

  • enhancement대규모 클러스터: kube-proxy full-sync 제거로 컨트롤 플레인 부하 감소

    1000개 이상의 엔드포인트를 운영하는 환경에서 kube-proxy가 대규모 클러스터 모드임에도 불필요한 full-sync를 수행해왔습니다. 이번 패치로 해당 동작이 제거됩니다. 별도 설정 변경 없이 업그레이드만으로 적용되며, 업그레이드 후 kube-proxy CPU 사용량을 모니터링해 개선 효과를 확인하세요.

주요 변경 (5)
  • 64비트 프리픽스 IPv6 ServiceCIDR에서 서브넷 범위 밖으로 주소를 할당하던 버그 수정
  • 동일 이름의 Pod가 스케줄링 실패 후 재생성될 때 in-flight 이벤트 상태가 무한히 쌓이던 스케줄러 메모리 누수 수정
  • Windows L2Bridge 환경에서 Pod IP 재사용 시 오래된 HNS 엔드포인트가 남아 DNS 타임아웃을 유발하던 문제 수정
  • 1000개 이상 엔드포인트 환경에서 kube-proxy가 불필요한 full-sync를 실행하던 문제 수정
  • kubeadm init 시 kubeconfig에 LocalAPIEndpoint를 사용하도록 변경하여 로드밸런서 지연 문제 해소, etcd 상태 확인도 쿼럼 방식으로 전환
원문

Kubernetes

Kubernetes Core2026년 4월 22일

Kubernetes v1.36은 다수의 GA 승격, DRA 대규모 확장, 갱 스케줄링 API 신규 도입, 그리고 업그레이드 전 즉시 조치가 필요한 메트릭 이름 변경을 포함하는 대형 릴리스입니다.

  • breaking업그레이드 전 모니터링 수정 필수 — 메트릭 이름 두 개 변경

    volume_operation_total_errors와 etcd_bookmark_counts가 각각 volume_operation_errors_total, etcd_bookmark_total로 이름이 바뀌었습니다. 기존 이름을 쓰는 Prometheus 알림이나 Grafana 대시보드는 업그레이드 후 조용히 동작을 멈춥니다. v1.36을 프로덕션에 적용하기 전에 모니터링 스택 전체를 점검하고 참조를 모두 교체하세요.

  • breakingDRA 사용 중이라면 RBAC 업데이트 필수

    DRAResourceClaimGranularStatusAuthorization 피처 게이트가 v1.36에서 베타로 기본 활성화됩니다. DRA 스케줄러·컨트롤러는 resourceclaims/binding에 대한 update/patch 권한이, DRA 드라이버는 resourceclaims/driver에 대한 associated-node:update 또는 arbitrary-node:update 권한(특정 resourceNames로 제한)이 필요합니다. DRA 드라이버를 운영 중이라면 업그레이드 전에 RBAC 매니페스트를 반드시 점검하고 수정하세요. 누락 시 파드 스케줄링이 실패합니다.

  • breakingflex-volume·git-repo 볼륨 플러그인 제거 — 마이그레이션 필수

    kubeadm은 더 이상 flex-volume 플러그인 디렉터리를 자동으로 마운트하지 않으며, git-repo 볼륨 플러그인은 영구적으로 비활성화됩니다. 재활성화 옵션이 없으므로 git-repo 볼륨을 사용하는 워크로드는 init 컨테이너 패턴이나 CSI 드라이버로 전환해야 합니다. kubeadm 환경에서 flex-volume을 계속 쓰려면 v1.36 업그레이드 전에 distroless 기반이 아닌 KCM 이미지와 extraVolumes 설정을 수동으로 구성해야 합니다.

  • breakingStrictIPCIDRValidation 기본 활성화 — IP/CIDR 값 점검 필요

    이제 API 필드에서 선행 0이 있는 IP(예: 010.0.0.1)나 호스트 비트가 설정된 CIDR(예: 192.168.1.5/24)을 거부합니다. 기존 오브젝트는 validation ratcheting으로 보존되지만, 신규 생성 및 업데이트는 실패합니다. 업그레이드 전에 매니페스트, Helm 차트, 자동화 스크립트에서 비정규 IP/CIDR 값을 점검하세요.

  • enhancementMutatingAdmissionPolicy GA 승격 — 단순 Webhook 교체 검토 시점

    CEL 기반 MutatingAdmissionPolicy가 v1으로 GA 승격되어 기본 활성화됩니다. 레이블/어노테이션 주입이나 기본값 설정처럼 단순한 뮤테이팅 웹훅을 운영 중이라면 MutatingAdmissionPolicy로 교체를 검토할 때입니다. 웹훅 서버 유지, 인증서 관리, 가용성 걱정 없이 CEL 기반 정책으로 동일한 기능을 구현할 수 있습니다. 상태가 없는 단순 뮤테이션부터 시작하는 것을 권장합니다.

주요 변경 (7)
  • 업그레이드 전 대시보드/알림 수정 필수: `volume_operation_total_errors` → `volume_operation_errors_total`, `etcd_bookmark_counts` → `etcd_bookmark_total`로 메트릭 이름 변경
  • kubeadm에서 flex-volume 지원 제거, git-repo 볼륨 플러그인 영구 비활성화 — CSI로 마이그레이션 필요
  • DRA 대폭 확장: 디바이스 테인트/톨러레이션 베타 승격, DRAAdminAccess·DRAPrioritizedList GA 승격, ResourceClaim 상태 업데이트에 세분화된 RBAC 권한 필요
  • UserNamespacesSupport GA 승격, MutatingAdmissionPolicy GA(v1) 승격 및 기본 활성화
  • StrictIPCIDRValidation 기본 활성화 — 선행 0이나 애매한 서브넷 마스크가 포함된 IP/CIDR 값은 API에서 거부됨
  • 갱 스케줄링을 위한 scheduling.k8s.io/v1alpha2 Workload/PodGroup API 도입, v1alpha1 Workload API 제거
  • InPlacePodLevelResourcesVerticalScaling 베타 승격(기본 활성화) — 파드 수준 CPU/메모리 인플레이스 리사이즈 지원
원문

Kubernetes

Kubernetes Core2026년 4월 15일

v1.33.11은 MultiCIDRServiceAllocator 활성화 시 apiserver 기동 실패와 nft 1.1.3에서의 kube-proxy nftables 오작동을 수정한 패치 릴리스입니다. Go 1.25.9로 컴파일러도 업데이트됐습니다.

  • breakingMultiCIDRServiceAllocator + 대규모 클러스터라면 즉시 업그레이드

    MultiCIDRServiceAllocator가 활성화된 환경에서 네임스페이스가 많으면, 업그레이드 중 apiserver가 아직 준비되지 않은 어드미션 플러그인으로부터 Forbidden 오류를 받고 기동에 실패하는 문제가 있었습니다. 이번 패치로 재시도 로직이 추가됩니다. 이 문제 때문에 1.33 업그레이드를 미뤄왔다면 이제 적용할 수 있습니다. apiserver 로그에서 IP 복구 컨트롤러의 Forbidden 오류를 확인해 보세요.

  • breakingnft 1.1.3 사용 노드는 kube-proxy nftables가 사실상 불통 — 즉시 패치 필요

    nft 1.1.3이 설치된 노드(일부 최신 배포판 기본값)에서는 kube-proxy nftables 모드가 제대로 작동하지 않습니다. 처음에는 트래픽이 흐르는 것처럼 보여도 규칙 업데이트가 올바르게 적용되지 않습니다. 노드에서 'nft --version'으로 버전을 확인하고, 1.1.3이라면 이 패치 릴리스로 업그레이드하는 것이 가장 확실한 해결책입니다.

  • enhancementOTel v1.41.0 대폭 업그레이드 — 옵저버빌리티 파이프라인 검증 필요

    OpenTelemetry Go SDK가 v1.33.0에서 v1.41.0으로 한 번에 올라갔습니다. 버전 차이가 큰 만큼, Kubernetes 텔레메트리 데이터를 수집하거나 OTel SDK와 연동되는 사이드카를 운영 중이라면 업그레이드 전 비운영 환경에서 트레이싱·메트릭 파이프라인이 정상 작동하는지 먼저 확인하세요. Kubernetes 기능 자체의 변화는 없지만 버전 갭이 충분히 커서 점검할 가치가 있습니다.

주요 변경 (5)
  • Go 컴파일러 1.25.9로 업데이트 (보안 및 런타임 개선 포함)
  • MultiCIDRServiceAllocator 활성화 상태에서 네임스페이스 수가 많은 클러스터 업그레이드 시 apiserver 기동 실패 수정 — IP 복구 컨트롤러가 아직 준비되지 않은 어드미션 플러그인의 Forbidden 오류를 재시도하도록 개선
  • nft 1.1.3에서 kube-proxy nftables 모드가 정상 작동하지 않던 호환성 문제 수정
  • OpenTelemetry 의존성 v1.33.0 → v1.41.0으로 대폭 업그레이드
  • nftables 수정과 직결된 knftables 라이브러리 v0.0.17 → v0.0.21 업데이트
원문

Kubernetes

Kubernetes Core2026년 4월 15일

v1.34.7은 감사 로그 지연 시간 누락 버그와 nftables kube-proxy 호환성 문제를 수정하고, Go 1.25.9로 재빌드한 패치 릴리스입니다.

  • breaking감사 로그 지연 시간 데이터가 조용히 누락됐습니다 — 즉시 패치 필요

    이 패치 이전의 1.34.x 클러스터는 500ms를 넘는 요청에 대해 감사 로그에서 지연 시간 어노테이션을 누락시켰습니다. 보안 감사나 컴플라이언스 도구가 이 어노테이션을 파싱해 SLO 추적이나 이상 감지에 활용하고 있다면, 그 기간의 데이터에는 공백이 있는 셈입니다. v1.34.7로 업그레이드 후, 해당 기간 감사 로그가 불완전하다는 사실을 기록으로 남겨두세요.

  • breakingnft 1.1.3 환경에서 nftables kube-proxy가 완전히 동작 불가 — 우회 없으면 즉시 업그레이드

    Fedora 42, Ubuntu 25.04처럼 nft 1.1.3이 기본 탑재된 신형 배포판에서 kube-proxy를 nftables 모드로 실행하면 네트워킹 자체가 동작하지 않습니다. 성능 저하가 아닌 완전한 장애입니다. nft를 구버전으로 고정하거나 v1.34.7로 즉시 업그레이드하세요. 수정 사항은 knftables 라이브러리 업그레이드(v0.0.17 → v0.0.21)에 포함되어 있습니다.

  • enhancementOTel v1.41.0으로 대폭 업그레이드 — 트레이싱 연동 검증 필요

    OpenTelemetry Go 패키지가 v1.35.0에서 v1.41.0으로 올라갔습니다. API 호환성은 유지되지만, 스팬 전파나 메트릭 수집 내부 동작이 상당 부분 변경됐습니다. Kubernetes OTel 스팬을 활용하는 커스텀 계측 코드나 사이드카가 있다면, 프로덕션 적용 전에 스테이징에서 반드시 검증하세요.

주요 변경 (5)
  • Go 1.25.9로 재빌드 — 업스트림 런타임 수정 사항 반영
  • 500ms 초과 요청에서 감사 로그 지연 시간 어노테이션이 누락되던 1.34+ 회귀 버그 수정
  • nft 1.1.3 환경에서 kube-proxy nftables 모드가 동작하지 않던 문제 수정
  • kubelet 재시작 후 device plugin 테스트 실패 문제 수정 (런타임 버그 아닌 테스트 안정성 개선)
  • OpenTelemetry 의존성을 v1.35.0에서 v1.41.0으로 대폭 업그레이드
원문

Kubernetes

Kubernetes Core2026년 4월 15일

v1.35.4는 사이드카 컨테이너 재시작 불가, StatefulSet 병렬 스케일링 회귀, kube-proxy nftables 오작동, 감사 로그 레이턴시 어노테이션 오류 등 5개의 실제 버그를 수정한 패치 릴리스입니다.

  • breakingStatefulSet maxUnavailable 동작에 의존 중이라면 즉시 확인 필요

    MaxUnavailableStatefulSet 기능 게이트가 1.35.4에서 다시 기본 비활성화됐습니다. 1.35.x로 업그레이드하면서 maxUnavailable 기반 병렬 파드 관리를 기대했다면, 그 동작은 현재 없는 셈입니다. StatefulSet 스펙에 maxUnavailable을 설정해둔 경우 조용히 무시됩니다. 업그레이드 전 스펙을 점검하고, 해당 기능 게이트가 다시 안정화될 때까지 운영 전략을 조정하세요.

  • breaking사이드카 + startupProbe 조합 사용 중이면 빠른 업그레이드 권장

    restartPolicy: Always인 initContainer와 startupProbe를 함께 쓰는 파드는 kubelet 재시작 이후 크래시된 컨테이너가 영원히 재시작되지 않고 RestartCount: 0에 멈추는 현상이 있었습니다. 서비스 메시 프록시, 로그 수집기 등 사이드카 패턴을 쓰는 프로덕션 워크로드가 영향을 받습니다. 이미 이 상태에 빠진 파드가 있다면, 1.35.4로 업그레이드 후 해당 파드를 수동으로 삭제·재생성하는 것이 복구 방법입니다.

  • enhancementnft 1.1.3 노드 환경이라면 kube-proxy 업그레이드 우선 적용

    nftables 버전 1.1.3이 설치된 시스템에서 kube-proxy의 nftables 모드가 완전히 동작하지 않는 문제가 있었습니다. 네트워킹 자체가 깨지는 조용한 장애입니다. 최근 Debian/Ubuntu 계열 일부 배포판이 nft 1.1.3을 포함하므로, 해당 환경의 노드 컴포넌트는 이번 패치를 우선 적용하세요.

주요 변경 (5)
  • StatefulSet 회귀 수정: MaxUnavailableStatefulSet 기능 게이트를 기본 비활성화로 되돌려 1.35 이전의 안정적인 병렬 파드 관리 동작 복원
  • 사이드카 컨테이너 버그 수정: restartPolicy: Always인 initContainer와 startupProbe를 함께 쓰는 파드가 kubelet 재시작 후 RestartCount: 0에서 멈추는 문제 해결
  • nft 1.1.3이 설치된 시스템에서 kube-proxy nftables 모드 정상화
  • 감사 로그 수정: 500ms 초과 요청에 대한 apiserver 레이턴시 어노테이션이 누락되던 1.34+ 회귀 수정
  • Go 1.25.9 빌드, OpenTelemetry 라이브러리 v1.41.0으로 업그레이드
원문

Kubernetes

Kubernetes Core2026년 3월 19일

v1.33.10은 ValidatingAdmissionPolicy의 kube-controller-manager 크래시 버그와 kubeadm 운영 버그 두 건을 수정한 소규모 패치입니다. 의존성 변경은 없습니다.

  • breaking개방형 스키마 VAP 사용 중이라면 즉시 패치 필요

    `additionalProperties: true`를 사용하는 ValidatingAdmissionPolicy가 존재하면 kube-controller-manager가 nil 포인터 예외로 완전히 다운됩니다. 우아한 성능 저하가 아닌 즉각적인 크래시입니다. v1.33.x를 사용 중이라면 현재 배포된 VAP 정책을 점검하고, 개방형 스키마 정책을 추가하기 전에 반드시 v1.33.10으로 업그레이드하세요.

  • enhancementHA 클러스터 컨트롤 플레인 확장 전 업그레이드 권장

    etcd는 신규 멤버를 learner로 먼저 등록한 뒤 승격시키는데, 이전 버전 kubeadm은 learner를 클라이언트 엔드포인트 풀에 포함시켜 조인 과정에서 간헐적 etcd 클라이언트 오류를 유발했습니다. kubeadm으로 관리되는 HA 클러스터에서 컨트롤 플레인 노드를 추가할 계획이 있다면, 작업 전에 이 패치를 적용하세요.

  • enhancement노드 자동화 해제 스크립트에서 kubeadm reset 안정성 개선

    /var/lib/kubelet이 bind 마운트된 노드에서 `kubeadm reset`을 실행하면 EINVAL 오류로 정리 작업이 중간에 실패했습니다. 이제 peer 마운트에서 예상되는 EINVAL을 무시하므로 reset이 깔끔하게 완료됩니다. 노드 폐기를 스크립트로 자동화하는 환경이라면 이 패치의 효과를 바로 체감할 수 있습니다.

주요 변경 (3)
  • ValidatingAdmissionPolicy에서 `additionalProperties: true` 스키마로 인한 kube-controller-manager nil 포인터 크래시 수정
  • kubeadm이 etcd learner 멤버를 클라이언트 엔드포인트에 추가하지 않도록 수정 — HA 클러스터 조인 시 라우팅 오류 방지
  • kubeadm reset 시 /var/lib/kubelet peer 마운트 해제 중 EINVAL 오류를 무시하도록 수정 — 불필요한 실패 방지
원문