RSS 쿠버네티스 블로그

Kubernetes v1.33: 스트리밍 목록 응답

인프라가 확장됨에 따라 쿠버네티스 클러스터의 안정성 관리가 매우 중요하며, 대량의 List 요청 처리가 클러스터 안정성에 영향을 미칠 수 있습니다. 쿠버네티스 커뮤니티는 대규모 리소스에서 불필요한 메모리 소모 문제를 해결하기 위해 List 응답에 대한 스트리밍 인코딩을 도입했습니다. 기존 API 응답 인코더는 완전한 응답 데이터를 단일 버퍼에 보관하여 전송 중에 메모리를 점진적으로 해제하지 못했습니다. 이러한 방식은 대규모 환경에서 비효율적이 되어 kube-apiserver 프로세스에서 높고 장시간 지속되는 메모리 소모로 이어집니다. encoding/json 패키지와 Protocol Buffers는 대규모 데이터셋 처리에 한계가 있어 스트리밍 기반 접근 방식의 필요성을 강조합니다. 새로운 스트리밍 인코더는 각 항목을 개별적으로 처리하고 전송하여 프레임 또는 청크가 전송됨에 따라 메모리를 점진적으로 해제할 수 있습니다. 이러한 접근 방식은 API 서버에서 필요한 메모리 공간을 줄이고 메모리 소모를 예측 가능하고 관리 가능하게 유지합니다. 스트리밍 인코더는 이전 버전과의 호환성을 보장하도록 설계되어 원래 인코더와 바이트 단위로 일치하며, 클라이언트 측 수정 없이 모든 쿠버네티스 List 유형을 지원합니다. 스트리밍 인코딩의 도입은 메모리 소모 감소, 확장성 향상, 안정성 증가를 포함한 상당한 성능 향상으로 이어졌습니다. 벤치마크 결과는 메모리 사용량이 70-80GB에서 3GB로 감소하여 20배 향상됨을 보여주며, 새로운 스트리밍 인코딩 메커니즘의 효과를 입증합니다.
favicon
kubernetes.io
Kubernetes v1.33: Streaming List responses
기사 이미지: Kubernetes v1.33: 스트리밍 목록 응답
Create attached notes ...