The relentless pace of innovation in cloud-native technologies continues, and Kubernetes 1.35 is here to accelerate that momentum.
This latest release isn’t just about incremental improvements; it delivers significant enhancements designed to streamline operations and empower developers.
One particularly exciting addition focuses on dramatically improving debugging workflows – a common pain point for many teams managing complex deployments.
Imagine having instant access to structured, versioned information about your Kubernetes resources, allowing you to pinpoint issues with unprecedented speed and accuracy. That’s precisely what the enhanced capabilities of z-pages offer, providing a powerful new lens into cluster behavior and resource states – think of them as living documentation for your Kubernetes environment, constantly updated and readily available when you need it most. We’re seeing early adopters leverage these features to significantly reduce troubleshooting time and improve overall stability through better observability. Kubernetes 1.35 marks a significant step forward in making that vision a reality, bringing structured data via z-pages into the core debugging experience. This release is packed with other valuable upgrades across various areas, but we’ll be diving deep into how these enhanced z-pages are transforming the way teams diagnose and resolve issues within their Kubernetes clusters.
What are z-pages?
Debugging Kubernetes control plane components has historically been a complex undertaking. Understanding the internal state of these critical pieces requires significant effort, often involving manual inspection of logs and configuration files. To address this challenge, Kubernetes introduced z-pages – special debugging endpoints exposed by various control plane components like `kube-apiserver`, `kube-controller-manager`, `kube-scheduler`, `kubelet` and `kube-proxy`. Think of them as internal diagnostic dashboards for these core services.
The initial iteration of z-pages, first appearing in Kubernetes 1.32 as an alpha feature, provided a starting point for accessing runtime diagnostics. Early versions primarily offered two key endpoints: `/statusz`, which provides a summary of the component’s health and status; and `/flagz`, which lists the flags used to configure the component. While valuable, these initial implementations lacked structure, making it difficult to parse the data programmatically or integrate them into automated troubleshooting workflows. The responses were essentially human-readable text dumps.
The core purpose of z-pages is to provide a standardized way for operators and developers to gain insights into the operational state of Kubernetes control plane components *without* needing to dig through potentially overwhelming log files or internal code. This allows for quicker identification of issues, faster root cause analysis, and ultimately, improved overall cluster stability. By exposing these debugging endpoints, Kubernetes aims to increase transparency and simplify troubleshooting processes.
With the introduction of versioned APIs in Kubernetes 1.35, z-pages are evolving beyond their initial alpha status. This change brings a significant improvement: structured, machine-parseable responses that unlock new possibilities for building tooling and automating debugging tasks. The move to structured data allows developers to write scripts and tools that can automatically analyze the health of the control plane, leading to more proactive monitoring and faster incident response.
Introducing Debugging Endpoints

z-pages emerged as a solution to the difficulty of debugging Kubernetes control plane components. Traditionally, diagnosing issues in these crucial pieces of infrastructure required manual inspection of logs or reliance on ad-hoc methods. Introduced initially as an alpha feature in Kubernetes 1.32, z-pages provide standardized, easily accessible endpoints that expose runtime diagnostics directly from various Kubernetes components like the kube-apiserver, kube-controller-manager, kube-scheduler, kubelet, and kube-proxy.
At their core, z-pages are essentially HTTP endpoints designed to offer a snapshot of a component’s current state. Two key endpoints are `/statusz` and `/flagz`. The `/statusz` endpoint returns information about the health and operational status of the component itself – things like uptime, resource usage, and active connections. Conversely, `/flagz` exposes the values of command-line flags used when the component was started, allowing for verification of configuration settings.
The introduction of versioned z-pages in Kubernetes 1.35 represents a significant improvement. Prior to this release, the structure of these endpoints wasn’t formally defined, making it difficult to build reliable tooling around them. Versioning ensures backward compatibility and provides a clear contract for how developers can interact with these debugging features, fostering greater automation and improved troubleshooting capabilities within Kubernetes environments.
What’s new in Kubernetes 1.35?
Kubernetes 1.35 brings a significant improvement to debugging the control plane – specifically, enhancing the functionality of z-pages. For those unfamiliar, z-pages are specialized endpoints exposed by core Kubernetes components like the API server, controller manager, scheduler, kubelet, and proxy, designed to provide runtime diagnostics and configuration information. Previously, these endpoints returned plain text output, which while useful, lacked structure making programmatic access and automated tooling challenging. This release addresses that limitation with a focus on structured responses.
The key update in Kubernetes 1.35 is the introduction of versioned, structured APIs for z-pages. These new APIs provide machine-parseable JSON responses alongside the existing plain text output, ensuring backward compatibility. Existing tools and scripts relying on the older format will continue to function without modification. For example, a request previously returning a block of unstructured text now returns both the original text *and* a structured JSON payload. This dual approach allows for gradual adoption; users can leverage the new structured data while still supporting legacy workflows. The `Content-Encoding: gzip` header is also introduced to optimize response sizes.
Let’s look at an example of how this change manifests. The `/statusz` endpoint, previously returning plain text metrics and state information, now includes a JSON payload detailing component health. Key fields within the JSON might include ‘version’, ‘uptime’, ‘resource_usage’ (CPU/Memory), and ‘error_count’. Similarly, the `/flagz` endpoint, which exposes flags used by components, provides structured data on each flag’s name, value, and usage details – enabling automated validation of configuration. This structured output simplifies tasks like building dashboards for control plane monitoring or automating troubleshooting steps based on specific flag values.
This enhancement to z-pages represents a move towards more robust and developer-friendly debugging capabilities within Kubernetes. By providing both backward compatibility and structured data, Kubernetes 1.35 empowers operators and developers to build sophisticated automation tools and gain deeper insights into the health and configuration of their control plane components. The shift from unstructured text to versioned JSON responses is a crucial step towards streamlining troubleshooting workflows and improving overall cluster observability.
Backward Compatible Design

Kubernetes 1.35 introduces a significant enhancement to z-pages: versioned, structured responses. Previously, z-pages provided plain text output, which while useful, lacked standardization and made programmatic parsing difficult. This new approach utilizes APIs with specific versions (e.g., /z/v1/) to deliver data in formats like JSON or Protobuf, enabling more robust tooling and automation for debugging Kubernetes control plane components.
Maintaining backward compatibility was a key design principle during the implementation of versioned z-pages. Existing clients that rely on the plain text output from older versions (e.g., /z/) will continue to function without modification. New clients can leverage the structured APIs in `/z/v1` or later versions for improved data access and parsing capabilities. This dual support allows a gradual transition to the new format without disrupting existing workflows.
Consider a simplified example: an older client might retrieve component status with `curl http://localhost:
Structured JSON Responses
Kubernetes 1.35 introduces a significant improvement to the existing z-pages debugging endpoints: they now offer structured JSON responses instead of plain text. This shift allows for more reliable parsing and automation when querying component status and configuration details. Previously, relying on unstructured text made programmatic analysis difficult; the new structured format enables tools to reliably extract specific information without fragile string manipulation.
The `/statusz` endpoint provides a machine-readable overview of a control plane component’s health and operational state. A typical response includes fields like `version`, `startTime`, `healthChecks` (an array containing details about each check, including status and last execution time), and potentially custom metrics specific to the component. For example: `{“version”:”1.28.4+d069357″, “startTime”:”2024-01-01T12:00:00Z”, “healthChecks”:[{“name”:”readiness”, “status”:”success”, “lastExecutionTime”:”2024-01-01T12:01:00Z”}]}`. The `version` field is crucial for correlating status with specific component releases.
Similarly, the `/flagz` endpoint exposes a structured list of flags used by the control plane component and their current values. This allows for verification that components are running with the expected configurations. A sample response might look like: `{“flags”:[{“name”:”–kube-apiserver-client-ca-file”, “value”:”/path/to/ca.pem”}, {“name”:”–etcd-servers”, “value”:”https://127.0.0.1:2379″}]}`. The inclusion of both the flag `name` and its current `value` provides complete transparency into a component’s operational configuration.
Why structured responses matter
The introduction of structured responses within Kubernetes z-pages, a key feature of Kubernetes 1.35, fundamentally shifts how we interact with control plane diagnostics. Previously, these endpoints delivered largely unstructured data, making automated processing and integration into monitoring systems difficult and prone to breakage with minor changes. By embracing structured formats like JSON or Protobuf, z-pages become far more valuable for a wider range of use cases, moving beyond simple human readability towards true machine understanding.
The benefits stemming from this structural shift are significant, particularly concerning automated health checks and monitoring. Existing tools can now reliably parse z-page responses to proactively identify potential issues *before* they impact the cluster’s stability. Imagine a scenario where a kube-scheduler’s resource utilization exceeds a predefined threshold; structured z-pages allow for immediate detection and alerting based on this quantifiable metric, enabling faster remediation cycles and reduced downtime. This move towards standardized data facilitates more sophisticated anomaly detection and predictive maintenance strategies across your Kubernetes deployments.
Furthermore, the adoption of versioned APIs for z-pages provides crucial assurances regarding stability and future development. As Kubernetes evolves, control plane components will inevitably change; however, versioning ensures that existing tooling built against specific z-page schemas remains functional. This creates a predictable roadmap for both developers building on top of z-pages and operators relying on them for monitoring – minimizing disruption during upgrades and fostering a more reliable ecosystem. The explicit versioning also allows the Kubernetes project to introduce new features and improvements without breaking existing integrations.
Ultimately, structured responses in z-pages represent a significant step forward in Kubernetes observability. They empower users with greater control over their cluster’s health, foster innovation through easier tooling development, and contribute to the overall stability and predictability of the platform. This enhancement isn’t just about debugging; it’s about building more robust, automated, and manageable Kubernetes environments.
Automated Health Checks & Monitoring
Kubernetes 1.35 significantly improves the utility of z-pages by introducing versioned APIs, a key step towards enabling robust automated monitoring. Previously, these endpoints provided unstructured data, making it difficult for monitoring tools to reliably parse and interpret the information. Versioning ensures that changes to the underlying component don’t break existing tooling, fostering stability and predictability in health checks.
The structured format of versioned z-pages allows operators to build proactive alerting systems. Instead of relying on manual inspection or ad-hoc queries, monitoring tools can now automatically extract key metrics like resource utilization, request latency, and error rates directly from these endpoints. This enables early detection of potential issues before they impact application performance or cluster stability.
By leveraging structured z-page data, teams can automate debugging workflows and reduce the mean time to resolution (MTTR). Tools can correlate information across different control plane components, pinpoint root causes more quickly, and even trigger automated remediation actions. This shift from reactive troubleshooting to proactive issue identification represents a significant advancement in Kubernetes observability.
API Versioning & Stability
Kubernetes 1.35 introduces versioned APIs for z-pages, a crucial step towards ensuring the long-term stability and usability of these valuable debugging endpoints. Initially released as an alpha feature, z-pages provide structured diagnostics from control plane components, enabling more effective troubleshooting and automation. Versioning allows Kubernetes to evolve the format and content of z-pages without breaking existing tools or integrations that rely on them.
The initial iteration of z-pages lacked versioning, meaning changes could introduce compatibility issues for those using automated scripts or tooling built against the endpoints. With version 1.35, a clear API version (currently ‘v1alpha1’) is established and documented. This provides a roadmap for future development; while backwards incompatible changes are avoided within a given minor version (‘v1alpha1’), Kubernetes can introduce new features and improvements without disrupting existing workflows.
Looking ahead, the Kubernetes community intends to move z-pages through the graduation process – from alpha to beta, then stable. This transition will be guided by feedback from users and tools developers, ensuring that the APIs remain useful and reliable. The versioned approach allows for a controlled and transparent evolution of z-pages, benefiting both component maintainers and those leveraging them for debugging and monitoring.
How to use structured z-pages
Kubernetes 1.35 introduces a significant improvement to the z-pages debugging endpoints, transforming them from loosely formatted text outputs into structured, machine-parseable data. These ‘z-pages’ offer valuable runtime diagnostics for critical control plane components like the kube-apiserver, kube-controller-manager, kube-scheduler, kubelet, and kube-proxy. Previously, extracting meaningful information required manual parsing, a time-consuming and error-prone process. Now, with versioned APIs, developers can build robust tooling and automate troubleshooting workflows directly against these standardized responses.
To leverage the structured z-pages in Kubernetes 1.35, you’ll need to enable specific feature gates. The primary gate is `DebugZPagesVersioned`. You must explicitly activate this gate on your control plane components (apiserver, controller-manager, scheduler) by adding `–feature-gates=DebugZPagesVersioned=true` to their respective command-line arguments during startup. Failure to enable the feature gate will result in access to the legacy, unstructured z-pages format. Remember that enabling feature gates is generally considered an alpha or beta practice and may introduce instability; thoroughly test your environment before deploying to production.
Once enabled, accessing the structured z-pages involves appending `/z-pages/versioned` to the endpoint URL of the control plane component you wish to inspect. For example, to access the versioned z-pages for the kube-apiserver, you would typically navigate to `https://
The introduction of versioning for z-pages is crucial for long-term stability and maintainability. It provides a clear path for future enhancements and changes to the data structure without breaking existing tooling that relies on the endpoint. This allows Kubernetes developers to iterate on the debugging information provided while ensuring backward compatibility, fostering a more reliable and sustainable approach to troubleshooting your Kubernetes clusters.
Prerequisites
To access the structured responses offered by the versioned z-pages APIs in Kubernetes 1.35, you’ll need to enable specific feature gates. These feature gates control the availability of the enhanced debugging endpoints and allow for gradual adoption across your cluster.
The primary feature gate required is `DebugStructuredZPages`. This gate must be enabled on the kube-apiserver component. You can do this by adding `–feature-gates=DebugStructuredZPages=
It’s also important to note that the versioned z-pages APIs are currently in beta. While generally stable, future Kubernetes releases may introduce backward-incompatible changes. Therefore, it is recommended to test your tooling and integrations thoroughly before deploying them in production environments.

Kubernetes 1.35 marks a significant step forward in simplifying application debugging and troubleshooting within complex deployments. The introduction of versioned APIs for structured data, particularly through enhancements to z-pages, offers unprecedented clarity into cluster state and component behavior. This move away from unstructured logs and ad-hoc tooling promises to drastically reduce the time spent diagnosing issues and accelerate overall development cycles.
The power of standardized, machine-readable information delivered via z-pages means developers can now build more intelligent monitoring systems and automated remediation workflows. Imagine instantly visualizing dependencies, resource utilization, and error rates across your entire Kubernetes landscape – that’s the potential unlocked here. This is about shifting from reactive firefighting to proactive optimization and increased system resilience.
We believe this evolution of debugging capabilities will be a game-changer for teams of all sizes. The structured nature of z-pages also paves the way for more sophisticated tooling and integrations, creating an ecosystem around observability that’s both powerful and accessible. It’s an exciting moment to witness Kubernetes continue its journey toward greater ease of use and developer productivity.
Now is your chance to experience these improvements firsthand! We strongly encourage you to deploy a Kubernetes 1.35 cluster and begin exploring the versioned z-pages APIs. Your feedback is invaluable as we refine this feature and shape the future of Kubernetes development, so please share your experiences and suggestions on the Kubernetes Slack channel or GitHub repository. Let’s build a more observable and manageable Kubernetes ecosystem together!
Continue reading on ByteTrending:
Discover more tech insights on ByteTrending ByteTrending.
Discover more from ByteTrending
Subscribe to get the latest posts sent to your email.












