What is New in Kubernetes 1.33
Kubernetes 1.33 continues the platform's focus on stability, security, and feature maturation. This release promotes several important features to General Availability (GA), including nftables mode for kube-proxy, improved service traffic distribution, and enhancements to Job handling and topology spread constraints.
Key themes include better support for in-place pod vertical scaling (now beta and enabled by default), continued improvements to Dynamic Resource Allocation (DRA), enhanced observability with new endpoints and metrics, and numerous bug fixes that address regressions from previous versions. The release also brings practical improvements for Windows users and cluster lifecycle management with kubeadm.
Major Feature Promotions
Kubernetes 1.33 graduates many features to stable status, making them production-ready.
| Feature | Status in 1.33 | Description |
|---|---|---|
| nftables mode (kube-proxy) | GA | Modern replacement for iptables with better performance and scalability. Now generally available. |
| Service trafficDistribution field | GA | Supports topology-aware routing with values like PreferClose and PreferSameNode. |
| JobSuccessPolicy and JobBackoffLimitPerIndex | GA (Stable) | More flexible control over Job success criteria and backoff behavior per index. |
| NodeInclusionPolicyInPodTopologySpread | GA (Stable) | Improved control over which nodes participate in topology spread calculations. |
| MatchLabelKeys in PodAffinity / PodAntiAffinity | GA | Allows more flexible pod placement rules based on label matching. |
| AnyVolumeDataSource and HonorPVReclaimPolicy | GA | Better support for custom volume data sources and reclaim policies. |
| InPlacePodVerticalScaling | Beta (enabled by default) | Allows updating CPU and memory resources of running pods without restart. |
| WinDSR (Windows Direct Server Return) | Beta (enabled by default) | Improved networking performance for Windows nodes. |
Dynamic Resource Allocation (DRA) Improvements
DRA continues to evolve with better device management capabilities.
- New feature gate
DRAPartitionableDevicesfor allocating partitionable devices. - Support for device taints to mark devices as unusable and evict intolerant pods.
DRAResourceClaimDeviceStatusis now enabled by default for reporting device health and status.- Admin access to ResourceClaim and ResourceClaimTemplate is restricted to specific admin namespaces.
- Maximum number of pods per ResourceClaim increased to 256.
- Improved support for rolling updates of DRA driver DaemonSets using maxSurge.
These changes make DRA more suitable for hardware-accelerated workloads such as GPUs and other specialized devices.
In-Place Pod Vertical Scaling
The InPlacePodVerticalScaling feature moves to beta and is enabled by default.
- Pods can now resize CPU and memory resources without restarting containers in many cases.
- Memory limit decreases require a RestartContainer policy to prevent OOM issues.
- New conditions
PodResizeInProgressandPodResizePendingreplace the deprecated status.resize field. - Resize errors are now clearly surfaced in pod status.
- Exclusive CPU assignment checks have been fixed for better reliability.
Scheduler and Performance Enhancements
The scheduler receives several improvements for reliability and efficiency.
SchedulerAsyncPreemptionandSchedulerPopFromBackoffQare now beta and enabled by default.- NodeInfo is exposed to ScorePlugin for richer scoring logic.
- Better handling of nominated nodes and topology spread constraints.
- The BalancedAllocation plugin now skips best-effort pods with zero resource requests.
Kubelet Improvements
Kubelet adds new observability and configuration options.
- New
/flagzand/statuszendpoints for viewing flags and component status. - Pressure Stall Information (PSI) metrics for better node pressure monitoring.
- Improved image pull credential tracking that persists across reboots.
- Support for per-pod subID allocation via
subidsPerPodin KubeletConfiguration. PodObservedGenerationTrackingpopulates observedGeneration in pod conditions.- Configurable CrashLoopBackOff decay to reduce restart delays for problematic containers.
Kubeadm and Cluster Lifecycle Updates
Kubeadm includes many reliability fixes for cluster initialization and upgrades.
- Improved handling of etcd learner members during join operations.
- Does not exit early on unknown API errors when patching Node objects and retries within polling window.
- Preserves order of user-provided extraArgs instead of sorting them alphabetically.
- Waits for etcd learner to start before promotion.
- Added preflight checks and better error messages for consistency.
- Respects TimeoutForControlPlane in newer ClusterConfiguration versions.
Bug Fixes and Regressions Addressed
Kubernetes 1.33 fixes multiple regressions and long-standing issues.
| Component | Key Fixes |
|---|---|
| kube-proxy (Windows) | IPv4 and IPv6 load balancers now tracked separately for correct dual-stack support. Fixed intermittent ClusterIP deletion and stale endpoints. |
| kubelet | Logging now respects verbosity levels. Fixed slow container runtime initialization triggering watchdog. Improved startup probe handling for sidecar containers. |
| API Server | Fixed nil pointer panics in ValidatingAdmissionPolicy and CRD validation. Reduced spurious errors and improved performance. |
| Scheduler | Fixed nil panic when aggregating resource requests. |
| Networking | Fixed nftables mode local traffic detection and spammy topology hint logs. |
Additional fixes address SELinux events for completed pods, Job status updates, and various memory leaks and data races.
Deprecations and Removals
Several older components and feature gates have been deprecated or removed as part of ongoing modernization.
- The beta annotation
service.kubernetes.io/topology-modeis deprecated in favor of the GA trafficDistribution field. - resource.k8s.io/v1beta1 ResourceClaim API is deprecated (use v1beta2).
- pod status.resize field is deprecated; use new resize conditions instead.
- git-repo volume plugin is disabled by default.
- Several GA feature gates (CPUManager, AppArmor, etc.) have been removed as they are now unconditionally enabled.
- Deprecated CLI flags such as --cloud-provider and --cloud-config have been removed.
Review the upgrade notes carefully, especially if you use DRA drivers, custom admission policies, or older networking configurations.
Dependencies and Build Changes
Kubernetes 1.33 is built with Go 1.24. The release includes updates to etcd, CoreDNS, CNI plugins, and various Go modules for improved security and performance.
These updates reduce technical debt and ensure compatibility with modern tooling and security standards.
Summary
Kubernetes 1.33 is a stability-focused release that matures important features like nftables kube-proxy, service traffic distribution, and in-place vertical scaling. With enhanced DRA support, better observability through new endpoints and metrics, and a long list of bug fixes, this version helps operators run more reliable and efficient clusters.
Whether you manage large production environments or are adopting advanced scheduling and device management features, Kubernetes 1.33 provides a solid and more polished foundation. Always test upgrades in staging environments first and consult the full upgrade documentation for a smooth transition.