RSS 쿠버네티스 블로그
팔로우
쿠버네티스 v1.36: PSI 메트릭, 쿠버네티스에서 GA로 졸업
Pressure Stall Information (PSI)는 2018년부터 Linux 커널에 통합되어, 장애로 이어지기 전에 리소스 포화를 식별하기 위한 고충실도 신호를 제공합니다. 전통적인 사용률 지표와 달리, PSI는 CPU, 메모리, I/O 전반에 걸쳐 지연된 작업과 손실된 시간을 정량화합니다. Kubernetes v1.36에서는 노드, 파드, 컨테이너 수준에서 리소스 경합을 관찰하기 위한 안정적인 인터페이스가 제공됩니다. PSI는 일시적인 급증과 지속적인 리소스 긴장을 구분하기 위해 지연 시간의 누적 합계와 이동 평균(10초, 60초, 300초)을 제공합니다.SIG Node의 광범위한 성능 테스트는 고밀도 워크로드(80개 이상의 파드)에서 PSI의 프로덕션 준비 상태를 입증했습니다. Kubelet 오버헤드는 KubeletPSI 기능 게이트를 토글하여 측정되었으며, 리소스 사용에 미미한 영향을 미쳤습니다. Kubelet의 수집 로직은 가벼운 것으로 입증되었으며, 표준 하우스키핑 주기와 원활하게 통합되어 0.1 코어 미만 또는 전체 노드 용량의 2.5% 미만을 소비했습니다.커널 오버헤드와 관련하여, Linux 커널에서 PSI를 활성화하면(psi=1 대 psi=0) 높은 부하에서 0.037 ~ 0.125 코어(노드 용량의 0.925% ~ 3.125%)의 일관된 차이가 발생했습니다. 주요 수집자인 kubelet 프로세스 또한 눈에 띄게 낮은 CPU 사용량을 유지했으며, 스파이크는 1초 이상 0.25 코어(6.25%)를 초과하지 않았습니다.v1.36의 개선 사항에는 더 스마트한 지표 방출이 포함됩니다. Kubelet은 이제 보고 전에 cgroup 구성을 통해 OS 수준 PSI 지원을 감지하여 오해의 소지가 있는 0 값 지표를 방지합니다. PSI를 사용하려면 노드는 Linux 커널 4.20 이상을 실행하고, cgroup v2를 사용하며, OS 수준에서 PSI가 활성화되어야 합니다(CONFIG_PSI=y, psi=0 부팅 매개변수 없음).PSI 지표는 v1.36에서 일반적으로 사용 가능하며 기능 게이트 옵트인이 필요하지 않습니다. 사용자는 /metrics/cadvisor 엔드포인트를 스크랩하거나 Summary API를 쿼리할 수 있습니다. PSI는 Linux 커널 기능이며 Windows 노드에서는 사용할 수 없습니다. 컨트롤 플레인의 API 서버를 통해 Kubelet의 HTTP API로 프록시하면 Summary API에서 실시간 압력 데이터를 얻을 수 있지만, 이는 권한이 필요한 작업입니다.