Comment créer un cluster Raspberry Pi Kubernetes à l’aide de MicroK8

(Dernière mise à jour le: 29 mai 2022)

1. Vue d’ensemble

Ce didacticiel sera une brève présentation du processus de mise en place et de fonctionnement des MicroK8 sur Raspberry Pi et de la jonction de plusieurs Pis pour former un cluster Kubernetes de qualité production.

MicroK8s est un Kubernetes léger, rapide et de niveau entreprise. Que vous soyez nouveau sur K8s ou un utilisateur expérimenté, MicroK8s vous aidera à gagner du temps et de l’espace sur n’importe quel appareil embarqué ou projets IoT.

Cette configuration peut être entièrement sans tête ou utiliser un écran HDMI et un clavier USB pour contrôler les nœuds de votre cluster.

Ce que vous apprendrez

  • Déploiement de Kubernetes sur Raspberry Pi à l’aide de MicroK8
  • Rejoindre plusieurs déploiements pour former un cluster
  • Gérer le cluster : ajouter et supprimer des nœuds

Ce dont vous aurez besoin

  • Un bureau Ubuntu 16.04 LTS (ou version ultérieure)
  • Un minimum de 2 Raspberry Pis, ils doivent être Pi 3B ou ultérieur. (Vous pouvez en utiliser autant que vous le souhaitez, ici nous en utilisons 3)
  • Un câble d’alimentation micro-USB pour chaque Pi (USB-C pour Pi4)
  • Une alimentation USB avec autant de ports que de cartes
  • Une carte microSD par Pi (8 Go recommandés), flashée avec une image Ubuntu Server
  • Quelques connaissances de base en ligne de commande

Optionnel:

  • Un moniteur avec une interface HDMI
  • Un câble HDMI si vous utilisez le Pis 2 ou 3 ou un câble MicroHDMI pour le Pi 4
  • Un câble réseau Cat5/6 pour chaque carte est préférable, mais la configuration Wi-FI est également possible
  • Un clavier USB
  • Un cluster rack (ici nous utilisons le Cluster Case du PiHut )

Vous aurez également besoin d’avoir toutes les cartes sur le même réseau, avec une fenêtre de terminal prête à se connecter à chaque Pi via SSH.

2. Construire le cluster

Si vous êtes allé de l’avant et avez acheté un rack pour votre Pis, il est maintenant temps de l’installer. Le temps de construction variera en fonction du rack que vous avez acheté et de l’agilité de vos doigts, mais cela ne devrait pas vous prendre plus de 45 minutes. Nous vous recommandons de le faire au début pour que tout soit bien organisé avant de commencer.

Si vous avez le PiHut Cluster Case que nous avons utilisé ici, les instructions de montage sont très simples. Voici quelques plans en cours pour référence :

Avertissement
Ne manipulez pas les noix sur un tapis sombre. Une (ou deux) glissades et ces ventouses seront perdues à jamais. Fais-moi confiance.

Une fois que vous avez terminé, cela devrait ressembler à ceci :

Si vous n’avez pas de rack, assurez-vous simplement que les Pis peuvent être connectés à une source d’alimentation et se trouver dans un endroit leur permettant de se connecter au même réseau (via WiFi ou Ethernet).

3. Configuration de chaque Pi

Chaque Pi aura besoin d’une image de serveur Ubuntu et vous devrez pouvoir vous y connecter en SSH.

Ce tutoriel vous apprendra comment arriver à cette étape. Suivez-le jusqu’à la section Installer un bureau . Allez-y et faites-le dans un autre onglet. Nous attendrons.

Avertissement
MicroK8s n’est disponible que pour les images Ubuntu 64 bits.

Ensuite, vous devriez pouvoir vous connecter à votre Pis sur votre réseau en utilisant leurs adresses IP.

4. Installation des MicroK8

Suivez cette section pour chacun de vos Pis. Une fois terminé, les MicroK8 seront installés et fonctionneront partout.

SSH dans votre premier Pi et il y a une chose que nous devons faire avant de craquer. Nous devons activer les c-groups pour que le kubelet fonctionne immédiatement. Pour cela vous devez modifier le fichier de configuration /boot/firmware/cmdline.txt :

sudo nano /boot/firmware/cmdline.txt

Et ajoutez les options suivantes :

cgroup_enable=memory cgroup_memory=1

La ligne complète pour ce Raspberry Pi particulier ressemble à ceci :

cgroup_enable=memory cgroup_memory=1 net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Enregistrez maintenant le fichier dans votre éditeur et redémarrez :

sudo reboot

Une fois cela fait, nous pouvons maintenant installer le composant logiciel enfichable MicroK8s :

sudo snap install microk8s --classic

Quelle version de Kubernetes cela installe-t-il ?

MicroK8s est un jeu d’enfant et en tant que tel, il sera automatiquement mis à jour vers les nouvelles versions du package, qui suit de près les versions en amont de Kubernetes.

Pour suivre une série Kubernetes en amont spécifique, il est possible de sélectionner un canal lors de l’installation. Par exemple, pour suivre la série v1.17 :

sudo snap install microk8s --classic --channel=1.17/stable

Les chaînes sont composées d’une piste (ou d’une série) et d’un niveau de stabilité attendu, basé sur les versions de MicroK8 (Stable, Candidate, Beta, Edge). Pour plus d’informations sur les versions disponibles, exécutez :

snap info microk8s

Découvrir les MicroK8

Avant d’aller plus loin, voici une rapide introduction à la ligne de commande du MicroK8 :

  • La commande start démarrera tous les services Kubernetes activés :microk8s.start
  • La commande inspect vous donnera l’état des services :microk8s.inspect
  • La commande stop arrêtera tous les services Kubernetes :microk8s.stop
  • Vous pouvez facilement activer les modules complémentaires Kubernetes, par exemple. pour activer “kubedns”:microk8s.enable dns
  • Pour obtenir l’état du cluster :microk8s.kubectl cluster-info

MicroK8s est facile à utiliser et est livré avec de nombreux modules complémentaires Kubernetes que vous pouvez activer ou désactiver.

5. Nœud maître et nœuds feuilles

Maintenant que vous avez installé des MicroK8 sur toutes les cartes, choisissez-en un qui sera le nœud maître de votre cluster.

Sur celui choisi, lancez la commande suivante :

sudo microk8s.add-node

Cette commande générera une chaîne de connexion sous la forme de <master_ip>:<port>/<token>.

Ajout d’un nœud

Maintenant, vous devez exécuter la joincommande depuis un autre Pi que vous souhaitez ajouter au cluster :

microk8s.join <master_ip>:<port>/<token>

Par example:

microk8s.join 10.55.60.14:25000/JHpbBYMIevZSAMnmjMHmFwanrOYCWZLu

Vous devriez pouvoir voir le nouveau nœud en quelques secondes sur le maître avec la commande suivante :

microk8s.kubectl get node

Pour chaque nouveau nœud, vous devez exécuter la microk8s.add-nodecommande sur le maître, copier la sortie, puis exécuter microk8s.join <master node output>sur la feuille.

Suppression de nœuds

Pour supprimer un nœud, exécutez la commande suivante sur le maître :

sudo microk8s remove-node <node name>

Le nom des nœuds est disponible sur le maître en exécutant la microk8s.kubectl get nodecommande.

Vous pouvez également quitter le cluster à partir d’un nœud feuille en exécutant :

sudo microk8s.leave

6. C’est tout !

Vous contrôlez maintenant votre cluster Kubernetes : une fois les Pis configurés avec MicroK8, l’ajout et la suppression de nœuds sont faciles et vous pouvez augmenter ou réduire au fur et à mesure.

Et après?

Les opportunités à partir de maintenant sont infinies, nous avons hâte de voir ce que vous proposez avec votre cluster Pi. Pour des commentaires, des rapports de bogues ou des contributions, contactez-nous sur GitHub , discutez avec nous sur les forums Kubernetes.

Et nous vous recommandons bien sûr de consulter la documentation de microk8s pour mieux vous familiariser avec MicroK8s.

 

FaiblePa malMoyenIntéressantExilent (No Ratings Yet)
Loading...

Laisser un commentaire

Translate »