피드로 돌아가기
Kubernetes BlogKubernetes Blog
DevOps

Kubernetes 1.35가 z-pages 디버깅 엔드포인트에 versioned JSON 응답을 추가해 기계가 파싱 가능한 구조화된 진단 데이터 제공

Kubernetes 1.35: Enhanced Debugging with Versioned z-pages APIs

2025년 12월 31일9intermediate

Context

Kubernetes 제어 평면 컴포넌트의 런타임 상태를 디버깅할 때 z-pages 엔드포인트는 일반 텍스트 응답만 반환했다. 일반 텍스트 형식은 인간 운영자에겐 유용하지만 자동화된 모니터링 도구나 프로그래매틱 파싱이 매우 어려웠다.

Technical Solution

  • /statusz와 /flagz 엔드포인트에 Accept 헤더 기반의 versioned JSON 응답 추가: 기존 plain text 호환성을 유지하면서 Accept: application/json;v=v1alpha1;g=config.k8s.io;as=Statusz 헤더로 구조화된 응답 수신
  • Statusz 응답에 startTime, uptimeSeconds, goVersion, binaryVersion, emulationVersion, paths 필드를 구조화된 JSON 객체로 제공
  • Flagz 응답에 command-line 인자 전체를 구조화된 flags 필드의 key-value 객체로 제공
  • ComponentStatusz와 ComponentFlagz 피처 게이트를 별도로 활성화하여 점진적 도입 지원
  • v1alpha1부터 시작하는 API 버전 관리 체계 도입: 향후 v1beta1과 v1 단계별 진화 계획

Key Takeaway

Kubernetes 제어 평면 디버깅 엔드포인트에 버전 관리된 구조화된 응답을 추가함으로써 자동화된 헬스 체크, 설정 검증, 모니터링 도구 개발이 가능해졌으며, 이는 backward compatibility를 유지하면서 진화 가능한 API 설계 원칙을 보여준다.


Kubernetes 클러스터 관리자가 ComponentStatusz와 ComponentFlagz 피처 게이트를 활성화하고 모니터링 스크립트에서 `Accept: application/json;v=v1alpha1;g=config.k8s.io;as=Statusz` 헤더를 포함한 curl 요청으로 JSON 응답을 받으면, 컴포넌트 버전 불일치나 잘못된 플래그 설정을 자동으로 감지하는 검증 도구를 개발할 수 있다.

원문 읽기