Kubernetes v1.36: 서버 사이드 샤디드 리... 노트

Kubernetes v1.36: 서버 사이드 샤디드 리스트 및 워치

클러스터 크기가 증가함에 따라 Kubernetes 컨트롤러는 특히 높은 카디널리티 리소스를 감시할 때 확장성 문제에 직면합니다. 클라이언트 측 샤딩은 기능적이지만 API 서버의 데이터 볼륨을 줄이지 않아 비효율성을 야기합니다. Kubernetes v1.36에서 알파 기능(KEP-5866)으로 도입된 서버 측 샤드 목록 및 감시는 이러한 비효율성을 해결합니다. API 서버는 컨트롤러가 지정한 해시 범위를 기반으로 이벤트를 필터링하여 각 복제본에 관련 데이터만 보냅니다. 컨트롤러는 인포머를 사용하여 리소스를 나열하고 감시하며, WithTweakListOptions를 통해 shardSelector를 통합합니다. shard selector는 객체의 metadata.uid 또는 metadata.namespace를 기반으로 리소스를 필터링하는 데 사용됩니다. API 서버는 샤드 선택기가 올바르게 적용되었는지 확인하기 위해 목록 응답 메타데이터에 shardInfo 필드를 반환합니다. 누락된 경우 클라이언트는 전체 필터링되지 않은 컬렉션을 처리해야 하며, 잠재적으로 클라이언트 측 필터링에 의존해야 합니다. 이 기능은 ShardedListAndWatch 기능 게이트를 활성화해야 합니다. Kubernetes 커뮤니티는 특히 대규모 클러스터를 관리하는 컨트롤러 작성자 및 운영자로부터 피드백을 구합니다. 이 접근 방식은 까다로운 Kubernetes 환경에서 컨트롤러 성능 및 확장성을 개선하도록 설계되었습니다.