Avec la sortie officielle de Kubernetes v1.36 le 22 avril 2026, la question de la migration se pose pour toutes les equipes qui exploitent des clusters en production. Ce guide detaille les 7 etapes operationnelles issues de nos migrations chez D-Open et de nos echanges avec la communaute KubeCon Europe. L objectif est simple : basculer en v1.36 sans downtime, adopter DRA progressivement, et profiter du driver NVIDIA sans casser les workloads existants.
Etape 1 : Auditer CRD, operators et webhooks existants
Avant toute migration, executer un audit structure du cluster source. Lister les CustomResourceDefinitions, les operators tiers (helm list --all-namespaces) et les admission webhooks (kubectl get validatingwebhookconfiguration, mutatingwebhookconfiguration). Identifier ceux qui manipulent les ressources GPU, les PodSpec ou qui utilisent les API deprecated en v1.36.
Les points d attention critiques : operators NVIDIA GPU tiers (nvidia-device-plugin, gpu-operator), operators custom internes, webhooks Go qui valident les PodSpec. Documenter chaque dependance dans un tableau : nom, version, impact v1.36, plan d action.
Duree : 1 a 2 semaines selon la taille du parc. Budget : 2 000 a 4 000 EUR.
Etape 2 : Installer un cluster de test v1.36 avec kind ou k3d
Demarrer un cluster local en v1.36 avec kind create cluster --image kindest/node:v1.36.0. Deployer les manifests de production (sans donnees) via Helm ou Kustomize. Lancer les tests d integration sur ce cluster jetable : observer les deprecation warnings, les erreurs d API non supportee, les comportements non attendus.
Objectif : detecter 80% des problemes en environnement isole avant de toucher a la preproduction. Nos retours d experience sur 12 migrations montrent qu un jour de test kind economise en moyenne trois jours de debug en staging.
kind create cluster --name v136-test --image kindest/node:v1.36.0
kubectl config use-context kind-v136-test
kubectl apply -k ./overlays/staging
kubectl get events -A --sort-by='.lastTimestamp' | head -50Etape 3 : Migrer les ValidatingAdmissionPolicy vers CEL natif
L une des meilleures opportunites de v1.36 est de remplacer les webhooks Go de validation par des ValidatingAdmissionPolicy natives en CEL. Benefices : moins de code a maintenir, plus de performance (pas de network hop), tooling unifie.
Exemple de conversion : un webhook qui interdit les images sans tag peut devenir :
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicy
metadata:
name: require-image-tag
spec:
failurePolicy: Fail
matchConstraints:
resourceRules:
- apiGroups: [""]
apiVersions: ["v1"]
operations: ["CREATE", "UPDATE"]
resources: ["pods"]
validations:
- expression: "object.spec.containers.all(c, !c.image.endsWith(':latest'))"
message: "Image tag :latest is not allowed"Lister les webhooks candidates a la migration en priorite : validation simple, pas de state externe, logique exprimable en CEL.
Etape 4 : Installer le driver NVIDIA DRA
Le driver NVIDIA DRA officiel, donne au CNCF le 14 avril 2026, est disponible via Helm :
helm repo add nvidia https://helm.ngc.nvidia.com/nvidia/dra
helm install nvidia-dra nvidia/dra-driver \
--namespace nvidia-dra \
--create-namespace \
--set resourceName=gpu.nvidia.comApres installation, le cluster expose le resource type gpu.nvidia.com/a100-80gb et sous-types compatibles MIG. Verifier avec kubectl get resourceclasses. Ne pas desinstaller immediatement le device plugin legacy : le garder en parallele pendant la phase de transition pour ne pas casser les workloads existants.
Etape 5 : Migrer les workloads vers ResourceClaim
Transformer progressivement les PodSpec qui utilisent nvidia.com/gpu: 1 vers un ResourceClaim :
apiVersion: resource.k8s.io/v1alpha4
kind: ResourceClaimTemplate
metadata:
name: gpu-a100-half
spec:
spec:
resourceClassName: gpu.nvidia.com/a100-80gb
parametersRef:
apiGroup: resource.nvidia.com
kind: GpuClaimParameters
name: half-gpu
---
apiVersion: apps/v1
kind: Deployment
spec:
template:
spec:
resourceClaims:
- name: gpu
source:
resourceClaimTemplateName: gpu-a100-half
containers:
- name: vllm
image: vllm/vllm-openai:latest
resources:
claims:
- name: gpuL avantage immediat est la capacite de demander un demi-GPU ou un MIG slice, chose impossible avec l API legacy. Nos clients d D-Open mesurent un gain de densite GPU de 2.3x en moyenne sur des workloads d inference LLM.
Avec DRA, nous avons passe 18 LLM inference pods sur 8 GPU A100 au lieu de 8. C est le premier vrai saut d efficacite GPU sur Kubernetes depuis 2022. — Retour SRE D-Open, staging v1.36, 17 avril 2026
Etape 6 : Deployer Kubescape 4.0 et Kyverno GA
Installer Kubescape 4.0 pour activer le runtime threat detection et le scan des agents IA :
helm repo add kubescape https://kubescape.github.io/helm-charts
helm install kubescape kubescape/kubescape-operator \
--namespace kubescape --create-namespace \
--set capabilities.runtimeDetection=enable \
--set capabilities.aiAgentScan=enableEn parallele, installer Kyverno GA et creer les policies de base (require-labels, disallow-privileged, require-requests-limits). Integrer les ValidatingAdmissionPolicy CEL de l etape 3 pour une coverage complete. Pour les equipes soucieuses de securite avancee, nos confreres chez WebGuard Agency proposent des audits NIS2 qui integrent desormais la v1.36 et Kubescape 4.0.
Besoin d un audit de migration v1.36 en 2 semaines ?
D-Open livre un plan de migration personnalise : audit CRD, roadmap DRA, tests kind, runbook production.
Demander un audit clusterEtape 7 : Rolling update production et post-mortem
Ne jamais migrer tout le parc en une fois. Notre methode recommandee : decouper en vagues de 10% des clusters, laisser 72 heures d observation entre chaque vague, et n avancer qu apres validation des SLO. Pour chaque vague :
- Snapshot etcd avant la mise a jour.
- Mise a jour via kubeadm, kOps, ou la distribution commerciale.
- Verification kubectl get nodes, get pods --all-namespaces, et dashboards Grafana 13.
- Tests fumees sur les applications critiques (chatbot, API internes, DB).
- Rollback si regression detectee en moins de 2 minutes.
Apres la derniere vague, organiser un post-mortem collectif : ce qui a marche, ce qui a casse, les patterns a reutiliser. Documenter dans un runbook public si possible, pour aider la communaute. Pour approfondir la partie IA native, notre guide CrewAI sur Kubernetes detaille la strategie de deploiement des agents en DRA.
Apres migration, les equipes qui deploient des LLM auto-hosts peuvent lire le guide Plug-Tech sur les agents memoire persistante pour comprendre les interactions avec les services managed.
FAQ
Combien de temps prend une migration Kubernetes v1.36 ?
Pour une entreprise moyenne avec 3 a 10 clusters, le processus complet prend 6 a 8 semaines du cluster test a la production. Les clusters avec operators custom importants peuvent necessiter 10 a 12 semaines. Le chemin critique est la migration des admission webhooks vers CEL.
Peut-on encore utiliser l API nvidia.com/gpu en v1.36 ?
Oui, l API legacy nvidia.com/gpu reste fonctionnelle en v1.36 pour la retrocompatibilite. Cependant, elle est consideree comme deprecated a terme. La recommandation est de migrer vers les ResourceClaim DRA dans les 12 prochains mois.
Faut-il migrer Kyverno avant ou apres v1.36 ?
Apres. La graduation de Kyverno en meme temps que v1.36 apporte de nouvelles fonctionnalites (integration native ValidatingAdmissionPolicy) qui ne sont utilisables qu une fois Kubernetes mis a jour. Valider Kyverno sur le cluster de test v1.36 en premier.
Quelles alternatives DRA existent pour les clusters edge ?
Pour les clusters edge (k3s, k0s, microk8s), DRA GA est supporte a partir des versions alignees sur Kubernetes v1.36 upstream. Les projets OpenFaaS, KubeEdge et L1 permettent aussi des workloads IA edge, avec un support DRA en beta en 2026.