Skip to content

CollegeBoreal/AtelierMetal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

☸️ Kubernetes sur Métal

L'exercice dans cette section est de préparer sa grappe (cluster) que vous installerez sur du métal.

🎉 Participation Commentaires
👤 Individuelle Chaque étudiant.e doit effectuer des tâches sur leur serveur permettant la mise en marche de la grappe
👥 En groupe Chaque groupe mettra en oeuvre l'application de certaines tâches pour créer la grappe

📖 Table des matières

Chapitres Descriptions
🅾️ Nommage Constituer et nommer sa grappe
 🅰️ La préparation Préparer son noeud
 🅱️ Les composants Installer les composants constituant la grappe (outils et services)
🆎 Les plans Déployer les plans kubernetes de contrôle et de données
🕹️ Contrôller la grappe Contrôller la grappe à distance d'un poste d'utilisateur
💾 Le stockage Stocker les données sur des disques synchronisés sur un réseau de stockage (SAN)
🚀 Les services Permet de fournir les applications à travers des services

🅾️ Nommage

👥 activité en groupe

Votre grappe comprend 4 noeuds (serveurs) que vous devrez d'abord nommer

  • Nommer vos Grappes ✍️
  • Aidez vous de Azure Zone DNS pour créer votre Zone aupres de votre fournisseur de domaine (NS Record).
  • Après avoir déterminé le nom de votre grappe:
  • Créer un répertoire avec le nom de votre grappe et y mettre un fichier README.md avec la topologie de votre grappe, example:

⭐ Name: orion

Type Server Hostname IP Specs
control plane betelgeuse.orion.gasy.africa 10.13.15.200/20 64GB Ram, 16cpus
data plane bellatrix.orion.gasy.africa 10.13.15.201/20 64GB Ram, 16cpus
data plane rigel.orion.gasy.africa 10.13.15.202/20 32GB Ram, 16cpus
data plane saiph.orion.gasy.africa 10.13.15.203/20 64GB Ram, 16cpus

🅰️ La préparation

👤 activité individuelle

📍 Le serveur

  • son nom
  • son swap
  • son bridge

Preparation ✍️

🅱️ Les composants

👤 activité individuelle

📍 Installation des outils

  • Installer les outils 🧊 kubetools ✍️ permettant de gérer la grappe, comme kubeadm et kubectl

📍 Installation des services

  • Installer le CNI (Container Network Interface) géré par le Service 💧 Kubelet ✍️

  • Installer le CRI (Container Runtime Interface) géré par le Service 🐳 Docker ✍️ défini par l'OCI ( 💡 À installer uniquement si Docker n'est pas déjà sur le serveur )

🆎 Les plans

👥 activité en groupe

🎛️ Le plan de contrôle (control plane)

⚠️ Assurez vous que votre domaine a tous les noms de serveurs (noeuds) liés à votre grappe

🌟 Mais qu'est-ce qu'un manifeste ✍️ ?

🧮 Les plan de données (data plane)
  • Permettre aux autres noeux de joindre ✍️ la grappe.

🕹️ Contrôller la grappe

👥 activité en groupe

📍 Installer les 🧰 outils ✍️ sur son PC pour gérer la grappe

outil Description
kubectl Contrôller la grappe
📦 helm Gestionnaire de librairies (Package Manager) de Kubernetes
🎚️ lens IDE permettant la gestion de Kubernetes

📍 Mettre le fichier de configuration en contexte pour permettre la gestion de la grappe à distance

  • Installer le fichier de configuration dans un contexte ✍️ Kubernetes

📍 Tester sa connexion à la grappe

  • Vérifier que le context courant pointe bien sur kubernetes-admin@kubernetes
$ kubectl config get-contexts                                                      
CURRENT   NAME                          CLUSTER      AUTHINFO           NAMESPACE
*         kubernetes-admin@kubernetes   kubernetes   kubernetes-admin   
  • Vérifier que la grappe est complète
$ kubectl get nodes
NAME         STATUS   ROLES    AGE     VERSION
bellatrix    Ready    <none>   3m15s   v1.26.3
betelgeuse   Ready    master   25m     v1.26.3
rigel        Ready    <none>   68s     v1.26.3
saiph        Ready    <none>   22s     v1.26.3
  • Visualiser la grappe dans 🎚️ Lens

⚠️ Attention à ne pas installer d'applications, il manque la partie stockage.

🆑 La classe de stockage (Storage Class)

🧻 Le périphérique (Block Device)

👤 activité individuelle à appliquer à partir des 🧮 plans de données:

Le but de l'exercice est de créer un disque ou plutôt un volume logique et de le mettre en réseau avec iSCSI

  • Installer le Service 💽 iSCSI ✍️ permettant une implémentation SAN du protocole d'open-iscsi
  • Créer le volume logique 💿 lvm ✍️ appellé iscsi-lv
  • Préparer le périphérique en mode block et l'enregistrer dans un fichier blockdevice-xxxx-xxx-xxx.md du répertoire de votre grappe.

💾 Le stockage

🔖 Container Storage

👥 activité en groupe à appliquer à partir du 🎛️ plan de contrôle:

📍 Le modèle de stockage de kubernetes

Le standard Kubernetes permet aux founisseurs d'infrastructure d'utiliser leur propre moteur de stockage pour conteneur ou encore CS (Container Storage). Pour cela, la norme Kubernetes fournit une interface CSI. Cette interface permet d'utiliser des Polices ou Plugin en fonction de l'environnement info-nuagique ou métal.

Dans notre environnement, nous allons choisir openEBS et son Moteur de Stockage cStor comme CSI Plugin

📍 Installer🤏 le CSI Plugin openEBS

📍 Créer la classe de stockage (sc) standard

  • Installer les périphériques préalablement définis ci-dessus
  • Créer d'un réservoir de stockage pool avec les 3️⃣ périphériques
  • Créer la classe de stockage (sc) standard avec le réservoir de stockage pool

Utiliser les operations d'administration🤏. suivante pour la création de la classe de stockage (sc) standard

📍 Vous pouvez maintenant utiliser la classe de stockage (sc) standard définie par défaut

💡 Vérifier que la classe de stockage par défaut est bien standard

$ kubectl get storageclasses        
NAME                        PROVISIONER                                                RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
openebs-device              openebs.io/local                                           Delete          WaitForFirstConsumer   false                  20h
openebs-hostpath            openebs.io/local                                           Delete          WaitForFirstConsumer   false                  20h
openebs-jiva-default        openebs.io/provisioner-iscsi                               Delete          Immediate              false                  20h
openebs-snapshot-promoter   volumesnapshot.external-storage.k8s.io/snapshot-promoter   Delete          Immediate              false                  20h
standard (default)          openebs.io/provisioner-iscsi                               Delete          Immediate              false                  48s

🚀 Les Services

🔖 Service

👥 activité en groupe

🎛️ Le plan de contrôle (control plane)

🎬 Les Applications

👤 activité individuelle

Chaque étudiant aura à installer son application dans la grappe

  • Installer les applications avec LENS
  • Activer 🚀 le service en appliquant les annotations reliés à l'équilibreur de charge LoadBalancer Porter en fonction des examples de Configuration d'applications suivantes
  • Attacher l'application à votre nom de domaine

About

Atelier d'Installation de Kubernetes sur Metal

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages