Skip to main content

Kubernetes v1.35 is out!

Manuel Buil
K3s maintainer

Kubernetes 1.35 has arrived! As we roll out this latest version, it’s the perfect time to reflect on the significant strides the K3s project has made over the last quarter. 🥳

Our focus this release was on stability. We know that our users value a platform that remains consistent and reliable year over year. From major security milestones to core language upgrades, here is what’s new in the world of K3s.

Key Features and Improvements ✨

Modular Executor Interface & CNI Startup 🏗️

One of the most significant architectural improvements in this release is the refactoring of the Executor interface. By making CNI startup a first-class part of this interface, we have removed reliance on "CLI flag hacks" and direct dependencies on networking providers like Flannel or Kube-router. This decoupling makes K3s more modular and significantly easier to integrate into diverse platforms and distributions.

Embedded Kine Metrics 📊

Visibility into your database layer just got a lot better. We’ve enabled embedded metrics for Kine, allowing you to monitor the performance of your external database (like PostgreSQL or MySQL) directly through the K3s metrics endpoint. This is essential for debugging latency at the storage layer before it impacts your workloads.

Node Password Secrets 🔐

Security and automation take a step forward with the evolution of the Node Password Secrets. Instead of using the generic opaque type, we use a custom type. This allows the node password secret controller to only watch node password secrets instead of all secrets, which improves resource utilization and increases responsiveness in larger clusters. Node password secrets are also now automatically cleaned up if node registration fails, instead of leaving orphaned secrets.

Security Self-Assessment 🛡️

As part of our commitment to excellence, we have completed a comprehensive Security Self-Assessment. This deep dive into our architecture and processes ensures that K3s continues to meet the highest standards for production environments, providing a clear roadmap for how we protect your data. link

Language Evolution: Go 1.25 🚀

K3s is now built with Go 1.25. This brings the latest performance optimizations and security patches to the K3s binary, ensuring that our "default" remains the most efficient way to run Kubernetes.

Inclusive Naming Migration 🤝

Words matter. We have officially transitioned our primary branch naming from master to main and updated internal references to align with inclusive naming standards. This ensures our codebase remains welcoming to all developers who wish to contribute.

You can find more information on what v1.35 brought upstream in this cool blog post

Bug Fixes and Notable Changes 🛠️

As always, there were a lot of bug fixes and here, are the most impactful:

  • Networking & Dual-Stack Resilience: We've pushed several fixes to stabilize complex networking setups. This includes corrected IPv6 handling for LoadBalancer addresses, resolving fatal errors in Network Policies (NetPol) when node IPs change, and hardening our Tailscale integration to handle pre-existing configurations more gracefully.
  • Reliable HA Cluster Management: Resolved critical edge-case bugs related to etcd member promotion and bootstrap data reconciliation. This ensures that when etcd members join or leave, or are restarted, the quorum remains stable and the promotion process is seamless.
  • CI Pipeline Migration: We successfully migrated the K3s Pull Request and Release CI pipelines from Drone to GitHub Actions, increasing transparency and ensuring the continuity of our build process for years to come.

Version Bumps for Key Components 🚀

ComponentNew Version
Kinev0.14.9
SQLitev3.50.4
Etcdv3.6.6
Containerdv2.1.5
Runcv1.4.0
Flannelv0.27.4
Metrics-serverv0.8.0
Traefikv3.5.1
Corednsv1.13.1
Helm-controllerv0.16.17
Local-path-provisionerv0.0.32

Special Thanks to Our Contributors 🙏

We are incredibly grateful to our community members who contributed key improvements during this cycle. A massive thank you to:

@systemj, @farazkhawaja, @AshiqN, @rorosen, @xelus22, @jvassev

Join our Adopters list 💎

If K3s is making your life easier, the best way to say "thanks" is to add your company to our official Adopters list. It’s a tiny gesture that carries a lot of weight for the project's health and visibility within the CNCF ecosystem. We are currently working hard to get our 'status' inside the CNCF to progress and showing a large list of Adopters would help tremendously.

The task is easy: create a PR that adds your name in https://github.com/k3s-io/k3s/blob/main/ADOPTERS.md.

Thanks a lot!