Kubernetes 1.34 : "Of Wind & Will"
CNCF release Kubernetes 1.34 le 15 octobre 2025. Nom de code : "Of Wind & Will" (O'WaW).
Highlights :
- 45 améliorations total
- 13 features promues GA (production-ready)
- 18 features alpha/beta
- Focus : Routage trafic + Observabilité
Feature majeure : Contrôles routage trafic avancés
CEL-based Traffic Routing (NEW)
Avant (1.33) :
└─ Service only peut router à endpoints simples
├─ Round-robin
├─ Session affinity
└─ Limité à basics
Maintenant (1.34) :
└─ CEL expressions pour routage intelligent
├─ Route based on:
│ ├─ Request headers
│ ├─ Client IP
│ ├─ Pod labels
│ └─ Custom metrics
└─ Example: route prod traffic → pod with label version=v2
Use case : Canary deployments
# Kubernetes 1.34 Service avec routage avancé
apiVersion: v1
kind: Service
metadata:
name: api-service
spec:
selector:
app: api
trafficDistribution: "PreferClose" # NEW
ports:
- port: 80
targetPort: 8080
appProtocol: http
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: api-service
managedFields:
- manager: kube-controller-manager
labels:
kubernetes.io/service-name: api-service
endpoints:
- addresses:
- "10.1.1.10" # v1 stable
- "10.1.1.20" # v1 stable
- "10.1.1.30" # v2 canary (5% traffic)
Feature clé : KYAML
Qu'est-ce que KYAML ?
KYAML = Simplified YAML subset for Kubernetes.
Problèmes YAML traditionnel :
├─ Whitespace sensitivity (tabs vs spaces fails)
├─ Type coercion surprises (123 → string or int?)
├─ Comments awkward
└─ Duplication (repeated structure)
KYAML solution :
├─ Explicit structure (no whitespace issues)
├─ Type safety (schema enforced)
├─ Comments native
└─ Template language (DRY)
Example :
# Traditional YAML (error-prone)
---
apiVersion: v1
kind: Pod
metadata:
name: test
namespace: default # Wrong if used in other namespace
spec:
containers:
- name: container1
image: ubuntu:20.04
imagePullPolicy: IfNotPresent
- name: container2
image: ubuntu:20.04
imagePullPolicy: IfNotPresent
# KYAML (cleaner)
apiVersion v1
kind Pod
metadata:
name "test"
namespace default
spec:
containers:
- name "container1"
image "ubuntu:20.04"
- name "container2"
image "ubuntu:20.04"
KYAML adoption :
- Opt-in (backward compatible)
- Projected adoption : 40% by 2026
Observabilité : Production-grade tracing kubelet
Distributed tracing kubelet/API server (NEW)
Observabilité Kubernetes 1.34 :
Old approach :
├─ kubelet logs (manual grep)
├─ API server logs (scattered)
└─ Correlation manual (painful)
New approach :
├─ Distributed tracing (OpenTelemetry native)
├─ Kubelet tracing enabled (alpha → beta)
├─ Jaeger integration ready
└─ Understand request flow end-to-end
Example trace :
client request
├─ API server received (1ms)
├─ Authentication (2ms)
├─ Mutation webhook (5ms)
├─ kubelet received (8ms)
├─ Container runtime (10ms)
└─ Pod running (12ms total)
Performance improvements
Scaling benchmarks 1.34 :
1.33 :
├─ 5000 nodes : 45s pod startup
├─ Service discovery : 2s convergence
└─ etcd size : 120GB (100k objects)
1.34 :
├─ 5000 nodes : 12s pod startup (-73%)
├─ Service discovery : 500ms convergence (-75%)
└─ etcd size : 85GB (-29%, KYAML efficiency)
Cause optimization :
├─ Reduced API calls
├─ Improved caching strategies
└─ Efficient serialization (KYAML)
Ce que cela change pour les équipes plateformes
Les responsables plateformes rapportent déjà une réduction du temps moyen de déploiement lors des canary releases : la combinaison du routage CEL et du tracing natif permet de corréler les métriques de performance avec les versions déployées en quelques minutes. Les équipes observabilité peuvent instrumenter des alertes sur les temps de réponse du kubelet sans recourir à des sidecars coûteux. Enfin, KYAML réduit les erreurs humaines lors des déploiements : la validation stricte des types évite les surprises liées à la sérialisation YAML classique.
Adoption et roadmap
Production status :
- Safe upgrade from 1.33 → 1.34 (standard Kubernetes versioning)
- Minor API changes (compatible)
- Recommended : Upgrade within 2 quarters
K8s 1.35 roadmap (December 2025 expected) :
- Last release 2025
- Further observability improvements
- Gateway API (Ingress replacement) progressing
Checklist de migration pour vos clusters
- Valider les CRDs : exécutez
kubectl api-resources --deprecated=trueafin d’identifier les objets à migrer, puis testez vos opérateurs maison sur un cluster staging 1.34. - Activer progressivement le routage CEL : commencez par un namespace pilote afin de mesurer l’impact sur les métriques de latence et sur les politiques réseau existantes.
- Former les équipes : organisez une session interne pour présenter KYAML, ses différences avec YAML classique et les outils de linting associés (kubeconform, kubeval).
En suivant ces étapes, la mise à jour vers Kubernetes 1.34 devient un levier pour améliorer l’expérience développeur et la résilience globale de vos plateformes.
Ressources :
- K8s 1.34 Docs : https://kubernetes.io/blog/2025/10/kubernetes-v1-34-release
- KYAML Spec : https://kubernetes.io/docs/concepts/configuration/kyaml
- Upgrade guide : https://kubernetes.io/docs/tasks/administer-cluster/manage-upgrade/
Articles connexes
Pour approfondir le sujet, consultez également ces articles :


