Catégorie : Cluster

  • Article sans titre 48647

    Docker Swarm Visualizer – Interface Web

    [callout type= »tip » title= »Quick Win »]
    Déploie une interface web en une commande pour visualiser en temps réel l’état de ton cluster Docker Swarm.
    [/callout]

    Contexte

    Quand tu gères un cluster Docker Swarm multi-nœuds, il est essentiel d’avoir une vue d’ensemble de l’état des services et des conteneurs. Le Swarm Visualizer d’Alex Ellis fournit exactement ça.

    Installation

    [code lang= »bash » title= »deploy-visualizer.sh »]

    Vérifier l’état du cluster

    pi@pi4node001:~ $ docker node ls
    ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
    ppyfmhdq6p4xpflqj17eay2cm * pi4node001 Ready Active Leader 20.10.5
    pwsktgnu30hvtx5zkgsz4ay2v pi4node002 Ready Active 20.10.5
    zmt3lly41a9ultipey0p42oor pi4node003 Ready Active 20.10.5
    ushbeebwkt20orsg29uhy8420 pi4node004 Ready Active 20.10.5

    Déployer le visualizer

    docker service create
    –name viz
    –publish 8080:8080/tcp
    –constraint node.role==manager
    –mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock
    alexellis2/visualizer-arm:latest

    Vérifier le déploiement

    docker service ls
    ID NAME MODE REPLICAS IMAGE PORTS
    ki6uzmz4myuu viz replicated 1/1 alexellis2/visualizer-arm:latest *:8080->8080/tcp
    [/code]

    [callout type= »note » title= »Architecture ARM »]
    Utilise alexellis2/visualizer-arm:latest pour Raspberry Pi. Pour x86, utilise dockersamples/visualizer.
    [/callout]

    Accès

    Une fois déployé, accède à l’interface via: http://IP_MANAGER:8080

    L’interface affiche en temps réel:

    • 📊 Tous les nœuds du cluster
    • 🐳 Les conteneurs sur chaque nœud
    • 📈 L’état des services
    • 🔄 Les mises à jour en live

    Performance

    [metrics before= »K3s: ~800MB RAM » after= »Swarm: ~200MB RAM » improvement= »+75% plus léger »]

    [callout type= »success »]
    Docker Swarm est significativement moins gourmand en ressources que K3s, ce qui est idéal pour des clusters Raspberry Pi.
    [/callout]

    Configuration Avancée

    Persistence des Données

    Pour sauvegarder l’état du visualizer:

    [code lang= »bash » title= »visualizer-with-volume.sh »]
    docker service create
    –name viz
    –publish 8080:8080/tcp
    –constraint node.role==manager
    –mount type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock
    –mount type=volume,src=viz-data,dst=/data
    alexellis2/visualizer-arm:latest
    [/code]

    Mise à Jour

    [code lang= »bash » title= »update-visualizer.sh »]

    Mettre à jour l’image

    docker service update
    –image alexellis2/visualizer-arm:latest
    viz

    Vérifier le rollout

    docker service ps viz
    [/code]

    Troubleshooting

    [callout type= »warning » title= »Service ne démarre pas »]
    Symptôme: Le service ne démarre pas ou redémarre en boucle.

    Solutions:

    1. Vérifier que Docker socket est accessible: ls -la /var/run/docker.sock
    2. Vérifier les logs: docker service logs viz
    3. S’assurer que le port 8080 est libre: netstat -tulpn | grep 8080
      [/callout]

      🔗 Ressources

      [resources]
      [resource type= »github » url= »https://github.com/alexellis/docker-swarm-visualiser »]Swarm Visualizer – GitHub[/resource]
      [resource type= »doc » url= »https://docs.docker.com/engine/swarm/ »]Docker Swarm Documentation[/resource]
      [resource type= »blog » url= »https://blog.alexellis.io/docker-swarm-visualizer/ »]Blog Post – Alex Ellis[/resource]
      [/resources]


      Métadonnées WordPress

      Difficulté: ⭐ (Débutant) Niveau: Beginner Temps d’implémentation: 5 min Production Ready:Catégories: Docker, Swarm, SRE, Observability URL originale: https://you.arewel.com/visualisation-du-swarm/

  • Ansible, Prometheus et Grafana installés et configurés…

    Ansible, Prometheus et Grafana installés et configurés…

    Ansible déployé en une commande :

    apt install ansible
    

    Voici l’inventaire des nodes utilisés dans ansible :

    Pour déployer grafana et prometheus via ansible, j’ai utilisé en partie le tutoriel de Dino Fizzotti avec quelques adaptations (tout n’était pas aussi simple), je ferai probablement un autre article  sur ce que j’ai changé.

    Le résultat après quelques troubleshooting et quelques modifications est que finalement grafana permet  de monitorer les différents nodes du cluster.

  • Montage du cluster

    Montage du cluster

    Commençons par le commencement : le montage du cluster.

    Pour chaque Raspberry Pi, je mets des dissipateurs de chaleur sur la mémoire et le CPU :

    J’ai opté pour un châssis acrylique à 4 niveaux avec ventilateurs à chaque étage très basique mais efficace… Allez ! C’est parti… Un peu comme un lego.. Niveau par niveau, ensuite connection des ventilateurs (si ce sont des 5V alors le fil Rouge sur le pin 4 et le fil Noir sur le pin 6, si 3.3V alors rouge sur pin 1 et Noir sur pin 9).

    Et voilà le résultat final :

    Maintenant le câblage (réseau et alimentation) :

     

    Voilà ! Le cluster est prêt pour l’allumage ! Reste à préparer les cartes MicroSD et commencer les configurations….Suite au prochain numéro….