Kubernetes 1.33: a magical update?

Kubernetes 1.33: a magical update?

The latest release of Kubernetes, version 1.33, codenamed Octarine after a magical color, introduces 64 improvements. With 18 features promoted to stable status, this release strongly emphasizes the ecosystem’s maturity.

As usual with Kubernetes releases, version 1.33 brings new stable, beta, and alpha features. According to the release team, the consistent delivery of versions confirms the strength of the development cycle and the vibrant community support.

The name (in full, it’s “Octarine: The Color of Magic”) is a reference to Terry Pratchett’s Discworld novels, in which Octarine is a color that only magical individuals (and cats) can see. It thus represents the underlying complexity of Kubernetes, most of which users do not need to understand. After all, as the development team puts it, quoting Pratchett, the technology is still magical even if you know how it works.

Of the 64 improvements to stable status

Kubernetes v1.33 consists of a total of 64 improvements, 18 of which have been promoted to stable status, 20 are entering beta, and 24 are being introduced as alpha. In addition, two features have been withdrawn, namely the Endpoints API and host network support for Windows pods. A few fields have also been changed or removed, but only for components that were already deprecated in previous versions.

The release of Kubernetes v1.33 brings several improvements, including a number that the release team would like to highlight. One of these is the promotion of sidecar containers to stable status. The sidecar pattern involves deploying separate helper containers for additional capabilities in areas such as networking, logging, and metrics collection.

Kubernetes implements sidecars as a special class of init containers with restartPolicy: Always, which causes sidecars to start before application containers, continue to run throughout the pod’s lifecycle, and automatically shut down after the main containers have stopped. Sidecars can also use probes (startup, readiness, liveness) to indicate their operational status, and their Out-Of-Memory (OOM) score adjustments are tuned to primary containers to prevent premature termination under memory pressure.

Another important feature promoted to beta is in-place resource resize for vertical scaling of Pods. Previously, container resources in a Pod specification were immutable, and updates required Pod replacement. With this feature, resources can now be dynamically updated without a restart, opening up possibilities for vertical scaling of stateful processes without downtime, seamless scaling down during low load, and allocating larger resources during startup that can be reduced later.

In version 1.33, kubectl also introduces a new alpha feature with an opt-in .kuberc configuration file for user preferences. This file can contain kubectl aliases and overrides, while cluster references and host information remain in kubeconfig. This separation allows the same user preferences to be shared for kubectl interaction, regardless of the target cluster and the kubeconfig used.

Important stable features in v1.33

In addition to sidecar containers, there are 17 other improvements that have reached stable status in v1.33. For example, the feature that enables index-based backoff limits for indexed Jobs has graduated, allowing each index within an Indexed Job to have its own backoff limit. This provides more granular control over the retry behavior of individual tasks and prevents the failure of specific indexes from terminating the entire Job prematurely.

The Job success policy is now stable as well. This allows users to specify via .spec.successPolicy which pod indexes must succeed (succeededIndexes), how many pods must succeed (succeededCount), or a combination of both. This is beneficial for various workloads, the team reports, including simulations that do not need to be completed.

In addition, other important improvements have now been stabilized, including security improvements for bound ServiceAccount tokens, subresource support in kubectl, support for multiple Service CIDRs, the nftables backend for kube-proxy, and topology-aware routing with trafficDistribution: PreferClose. This functionality optimizes service traffic in multi-zone clusters by prioritizing the routing of traffic to endpoints within the same zone.

In the area of storage management, volume populators have reached stable status. This functionality provides a way to pre-populate volumes with data from various sources, not just PersistentVolumeClaim (PVC) clones or volume snapshots. Improvements in lifecycle management have been a clear trend in Kubernetes development as a whole, and this feature fits perfectly with that.

New features in beta and alpha

In addition to the stable features, Kubernetes v1.33 also introduces several new beta features. For example, there is now support for Direct Service Return (DSR) in Windows kube-proxy, which offers performance optimizations by allowing return traffic via load balancers to respond directly to the client without passing through the load balancer. This reduces the load on the load balancer and lowers overall latency.

Support for structured parameters remains a beta feature in Kubernetes v1.33, but this core component of Dynamic Resource Allocation (DRA) has seen significant improvements. A new v1beta2 version simplifies the resource.k8s.io API, and regular users with the namespaced cluster edit role can now use DRA.

Also notable in this release is the increasing support for specialized hardware and diverse workloads, translating into a more suitable multicloud approach, as highlighted in previous releases. Examples include Dynamic Resource Allocation (DRA) for network interfaces, asynchronous preemption in the Kubernetes Scheduler, and ClusterTrustBundles for managing X.509 trust anchors.

The alpha features in v1.33 include configurable tolerance for HorizontalPodAutoscalers, adjustable container restart delay, custom container stop signals, and numerous DRA improvements.

Availability and getting started

Kubernetes v1.33 is now available for download on GitHub or on the Kubernetes download page. For those who want to get started with Kubernetes, interactive tutorials are available, or you can run local Kubernetes clusters using minikube. Version 1.33 can also be easily installed with kubeadm.