Aller au contenu principal
Version: 3.0.0-alpha (Diátaxis)

Comment mettre a jour un cluster

Ce guide explique comment mettre a jour la version de Kubernetes sur un cluster Hikube. Les mises a jour se font par rolling update, sans interruption du plan de controle.

Prerequis

  • Un cluster Kubernetes Hikube deploye (voir le demarrage rapide)
  • kubectl configure pour interagir avec l'API Hikube
  • Le kubeconfig du cluster enfant recupere

Etapes

1. Verifier la version actuelle

Identifiez la version Kubernetes actuellement deployee sur votre cluster :

# Version dans la configuration Hikube
kubectl get kubernetes my-cluster -o yaml | grep version

# Version reportee par les noeuds
kubectl --kubeconfig=cluster-admin.yaml get nodes

Resultat attendu :

NAME                         STATUS   ROLES    AGE   VERSION
my-cluster-general-xxxxx Ready <none> 30d v1.29.0
my-cluster-general-yyyyy Ready <none> 30d v1.29.0

2. Consulter les versions disponibles

Avant de mettre a jour, verifiez les versions supportees par Hikube :

# Verifier la configuration actuelle du cluster
kubectl get kubernetes my-cluster -o yaml
attention

Testez toujours la mise a jour en environnement de staging avant la production. Certaines applications peuvent ne pas etre compatibles avec les nouvelles versions de Kubernetes.

remarque

Les mises a jour doivent se faire de maniere incrementale (par exemple, v1.29 vers v1.30). Ne sautez pas plusieurs versions mineures d'un coup.

3. Mettre a jour la version

Option A : Patch direct

kubectl patch kubernetes my-cluster --type='merge' -p='
spec:
version: "v1.30.0"
'

Option B : Modifier le fichier YAML

cluster-upgrade.yaml
apiVersion: apps.cozystack.io/v1alpha1
kind: Kubernetes
metadata:
name: my-cluster
spec:
version: "v1.30.0"

controlPlane:
replicas: 3

nodeGroups:
general:
minReplicas: 2
maxReplicas: 5
instanceType: "s1.large"
ephemeralStorage: 50Gi
roles:
- ingress-nginx
kubectl apply -f cluster-upgrade.yaml

4. Suivre le rolling update

Observez le deroulement de la mise a jour :

# Suivre l'etat du cluster Hikube
kubectl get kubernetes my-cluster -w

# Observer le remplacement des machines
kubectl get machines -l cluster.x-k8s.io/cluster-name=my-cluster -w

# Verifier les events
kubectl describe kubernetes my-cluster
astuce

Les mises a jour se font par rolling update : les noeuds sont remplaces un par un. Le plan de controle est mis a jour en premier, suivi des node groups. Vos workloads continuent de fonctionner pendant la mise a jour.

5. Verifier la mise a jour

Une fois le rolling update termine, confirmez la nouvelle version :

# Verifier la version des noeuds
kubectl --kubeconfig=cluster-admin.yaml get nodes

# Verifier la version de l'API server
kubectl --kubeconfig=cluster-admin.yaml version

Verification

Validez que le cluster fonctionne correctement apres la mise a jour :

# Noeuds en etat Ready avec la nouvelle version
kubectl --kubeconfig=cluster-admin.yaml get nodes

# Pods systeme operationnels
kubectl --kubeconfig=cluster-admin.yaml get pods -n kube-system

# Vos workloads fonctionnent
kubectl --kubeconfig=cluster-admin.yaml get pods -A

Resultat attendu :

NAME                         STATUS   ROLES    AGE   VERSION
my-cluster-general-xxxxx Ready <none> 5m v1.30.0
my-cluster-general-yyyyy Ready <none> 3m v1.30.0
attention

Si des pods restent en erreur apres la mise a jour, verifiez la compatibilite de vos manifestes avec la nouvelle version Kubernetes. Certaines API deprecees peuvent avoir ete supprimees.

Pour aller plus loin