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 |
Chapitres | Descriptions |
---|---|
Constituer et nommer sa grappe | |
|
Préparer son noeud |
|
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 |
👥 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 |
👤 activité individuelle
- son nom
- son
swap
- son
bridge
Preparation ✍️
👤 activité individuelle
- Installer les outils 🧊 kubetools ✍️ permettant de gérer la grappe, comme
kubeadm
etkubectl
-
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 )
👥 activité en groupe
- Installer le plan de contrôle ✍️
- Initialiser le réseau de gousses (pod network) en utilisant le CNI plugin ✍️ Calico
🌟 Mais qu'est-ce qu'un manifeste ✍️ ?
- Permettre aux autres noeux de joindre ✍️ 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
👤 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.
👥 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 stockagepool
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
👥 activité en groupe
👤 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