Automatiser la montée de version de clusters Kubernetes avec kubeadm et Ansible

Publié le 11 juillet 2025

Infrastructure
Cloud
Kubernetes

Maintenir vos clusters Kubernetes à jour est crucial pour la sécurité et l'accès aux nouvelles fonctionnalités. Avec kubeadm et Ansible, vous pouvez automatiser le processus de montée de version de vos maîtres et nœuds de travail, réduisant les temps d'arrêt.

Prérequis

  • Cluster Kubernetes déployé avec kubeadm (v1.24+).
  • Un control-plane et au moins un worker.
  • Ansible installé sur la machine de contrôle.

1. Préparer les playbooks Ansible

Créez upgrade-master.yml :

- hosts: masters
  become: true
  tasks:
    - name: Drain master node
      command: kubectl drain {{ inventory_hostname }} --ignore-daemonsets --delete-local-data

    - name: Upgrade kubeadm
      apt:
        name: kubeadm=1.25.0-00
        state: present

    - name: Plan upgrade
      command: kubeadm upgrade plan

    - name: Apply upgrade
      command: kubeadm upgrade apply v1.25.0 -y

    - name: Uncordon master
      command: kubectl uncordon {{ inventory_hostname }}

Créez upgrade-workers.yml :

- hosts: workers
  become: true
  tasks:
    - name: Drain worker node
      command: kubectl drain {{ inventory_hostname }} --ignore-daemonsets --delete-local-data

    - name: Upgrade kubelet and kubectl
      apt:
        name:
          - kubelet=1.25.0-00
          - kubectl=1.25.0-00
        state: present

    - name: Restart kubelet
      service:
        name: kubelet
        state: restarted

    - name: Uncordon worker
      command: kubectl uncordon {{ inventory_hostname }}

2. Exécuter les playbooks

ansible-playbook -i inventory upgrade-master.yml
ansible-playbook -i inventory upgrade-workers.yml

3. Vérification

kubectl get nodes

Assurez-vous que tous les nœuds sont à la nouvelle version et en Ready.

4. Personnalisation et best practices

  • Gérez les versions dans des variables Ansible.
  • Sauvegardez l’état du cluster avant l’upgrade.
  • Testez d’abord sur un environnement staging.

Conclusion

En combinant kubeadm et Ansible, vous obtenez une solution fiable pour des montées de version Kubernetes sans interruption, essentielle pour toute production.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets.

Contactez-nous

Articles similaires qui pourraient vous intéresser