This Cloud Native Live webinar provides a comprehensive overview of the Kubernetes 1.34 release, titled "Of Wind and Will." The session features members of the release team who highlight significant enhancements, deprecations, and key changes across various Special Interest Groups (SIGs) and Working Groups. Discussions include improvements in API server efficiency (snapshotable cache, streaming lists), relaxed DNS search validations, delayed job pod replacements, enhanced service account security, dynamic volume attribute scaling, the introduction of KML (Kubernetes Markup Language) for CLI, stable Linux node swap support, and more efficient pod re-queueing. A major focus is the General Availability of Dynamic Resource Allocation (DRA) and its related features. The presentation also covers the Kubernetes deprecation policy, the removal of manual cgroup driver configuration, and the phasing out of the emeritus advisor role within the volunteer-driven release team, concluding with a call for new contributors.
Kubernetes 1.34 Release Highlights: "Of Wind and Will"
0:00 Welcome & Introduction: The Cloud Native Live session introduces the Kubernetes 1.34 release webinar, reminding viewers about the CNCF Code of Conduct and encouraging questions.
1:03 Host & Release Team Introduction: Fred, a CNCF ambassador and the 1.34 Emeritus Advisor, hosts the event. He introduces Vom (Release Lead), Jenny (Enhancements Lead), and Augustina (Communications Lead), who provide brief self-introductions and their experience with Kubernetes and open source.
3:45 Volunteer Release Team Recognition: Emphasis is placed on the entirely volunteer-driven nature of the Kubernetes release team, acknowledging their relentless work across various roles like branch management, enhancements, release signal, docs, and communications.
4:49 "Of Wind and Will" Release Theme: Vom explains the release name, "Of Wind and Will," as a tribute to the perseverance of contributors. "Wind" represents external factors like tooling or documentation challenges, while "Will" signifies the determination of contributors to push the project forward, much like a ship's crew navigating the seas.
7:36 Enhancements Overview: Jenny explains Kubernetes Enhancement Proposals (KEPs) as long-lived documents tracking features and architectural changes through Alpha, Beta, and Stable stages. Kubernetes 1.34 tracks 58 enhancements: 13 Alpha, 22 Beta, and 23 Stable, along with deprecations/removals.
Snapshotable API Server Cache (KEP 4988, Beta): Improves efficiency and reduces memory footprint for historical list requests by leveraging the watch cache, avoiding direct CD queries.
Consistent Reads from Cache (KEP 2340, Stable): Allows most read requests to be served from the watch cache with consistency guarantees.
Streaming List Responses (KEP 5116, Stable): Prevents memory spikes by encoding and returning large list responses item-by-item instead of all at once.
DNS Config Searches List Relaxation (KEP 4427, Stable): Relaxes validation rules for DNSConfig search strings in pod specs, now allowing underscores and single dot values to support legacy workloads and external domain resolution.
Delayed Creation of Jobs Replacement Pod (Stable): Introduces a podReplacementPolicy field (set to TerminatingOrFailed or Failed) to control when replacement pods for failed jobs are created. This prevents issues with licensed applications, resource usage, and quota controllers by ensuring previous pods are fully terminated and resources deallocated before new ones are provisioned.
Service Account Tokens for Image Credential Providers (KEP 4412, Beta): Enhances security by allowing kubelet to request short-lived, automatically rotated ephemeral service account tokens for authenticating to image registries, replacing less secure long-lived image pull secrets.
API for External Signing of Service Account Tokens (KEP 740, Beta, enabled by default): Improves security and ease of use by integrating with external key management solutions for service account token signing via gRPC, eliminating the need to store static signing keys on disk or manually rotate them.
Volume Attributes Class (Stable): Introduces a generic Kubernetes-native API for modifying volume parameters other than capacity after provisioning. This allows for vertical scaling of volumes online (e.g., changing IOPS or throughput) if supported by the CSI driver (e.g., EBS, GCE).
KML (Kubernetes Markup Language) Introduction (Alpha): KML is presented as a subset of YAML that is valid YAML but designed to be unambiguous and more functional for command-line use. It removes whitespace dependency, handles "Norway bug" type boolean interpretations, supports comments, and simplifies templating.
Linux Node Swap Support (KEP 2400, Stable): Allows enabling swap memory support on a node by setting memorySwap.swapBehavior in the kubelet configuration to LimitedSwap (default is NoSwap). This can improve node stability by temporarily allocating swap memory during memory spikes, with swap amounts automatically determined.
Per-Plugin Callback Functions for Efficient Re-queueing (KEP 4247, Stable): Exposes a queueingHint callback function, enabling scheduling plugins to determine if a pod should be re-queued based on specific events. This improves scheduling efficiency by avoiding re-queuing unlikely to succeed pods and allowing quicker retries for expected failures.
30:57 Device Management Work Group Highlights - Dynamic Resource Allocation (DRA):
DRA Core (Generally Available/Stable): Dynamic Resource Allocation (DRA) provides a flexible way to categorize, request, use, and share custom hardware (e.g., GPUs) in Kubernetes. After an initial implementation was removed in 1.32, a new design (introduced in 1.30) for claiming devices using opaque structured parameters is now stable with APIs like ResourceClaim, DeviceClass, ResourceClaimTemplate, and ResourceSlice.
Related DRA Enhancements (Beta/Alpha): Several features enhance DRA, including secure admin access for resource monitoring (KEP 5018, Beta), prioritized alternatives for resource claims (KEP 4816, Beta), kubelet reporting allocated DRA resources (KEP 3695, Beta), resource health status (KEP 4680, Alpha), extended resource mapping for transition from device plugin API (KEP 54, Beta), DRA consumable capacity for dynamic device sharing (KEP 5075, Alpha), and device binding conditions for initialization (Alpha).
37:35 Deprecations and Removals Policy: Vom explains Kubernetes' deprecation policy, which provides warnings and phased removals for deprecated features, especially for GA APIs, to ensure ecosystem stability.
39:31 Manual cgroup Driver Configuration (Deprecated): The manual cgroupDriver configuration option in kubelet is deprecated. kubelet now automatically detects the correct driver by querying the container runtime, addressing past troubleshooting issues caused by conflicting manual configurations.
41:31 Containerd 1.x Support End: Kubernetes plans to end support for containerd 1.x starting with the 1.36 release because it doesn't implement the new runtime config API for automatic cgroup driver detection. Users are advised to upgrade to containerd 2.x.
42:15prefer-close Traffic Distribution (Deprecated): The prefer-close value in a Kubernetes service's spec.trafficDistribution field is deprecated. Users should switch to prefer-same-zone (an alias for the same behavior) or prefer-same-node (prioritizes endpoints on the same node as the client), which graduated to Beta in 1.34 and are enabled by default.
43:41 Release Team Updates & Call for Contributions:
The emeritus advisor role (Fred's role) is being removed and replaced by a sub-project lead for more consistent long-term guidance.
18 feature blogs for 1.34 are available at kubernetes.io/blog.
The 1.34 release saw contributions from over 100 companies and nearly 500 individuals.
Vom encourages new contributors to join the Kubernetes release team, emphasizing that no prior Kubernetes contribution experience is required.
KML Purpose: KML aims to remove ambiguity in YAML by providing an unambiguous subset, making it more programmatic and robust against quoting and indentation issues. It works seamlessly with any YAML parser.
Swap Stability: While introducing swap can raise stability concerns, the feature's motivation is to positively impact specific workloads. Best practices are provided in the KEP, and importantly, swap is disabled by default, requiring explicit configuration.
55:08 Conclusion: The hosts thank attendees and speakers, encouraging them to check the CNCF calendar for future events and highlighting the positive interaction.