Add proxmox course and tp, first k8s course

main
Evrard Van Espen 12 months ago
commit c1ea3ee483

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,236 @@
#+TITLE: Cours de virtualisation avancée: /Proxmox/
#+OPTIONS: toc:nil date:nil author:nil reveal_single_file:t
#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [12pt,a4paper]
#+LATEX_HEADER: \usepackage[utf8]{inputenc}
#+LATEX_HEADER: \usepackage[inkscapelatex=false]{svg}
#+LATEX_HEADER: \usepackage[sfdefault]{AlegreyaSans}
#+LATEX_HEADER: \usepackage{multicol}
#+LATEX_HEADER: \usepackage{minted}
#+LATEX_HEADER: \usepackage{float}
#+LATEX_HEADER: \usepackage{tikz}
#+LATEX_HEADER: \usetikzlibrary{positioning}
#+LATEX_HEADER: \renewcommand\listingscaption{Exemple de code}
#+REVEAL_THEME: white
#+REVEAL_INIT_OPTIONS: slideNumber:true
#+REVEAL_EXTRA_CSS: ../common/reveal_custom.css
* Parlons de déploiement (mais pas le vendredi)
[[file:./images/friday_deploy.gif]]
** Plusieurs solutions
*** Machines physiques
#+BEGIN_smallfont
Les applications sont déployées sur des machines physiques.
- Forte isolation des resources
- Sécurité accrue
- Laborieux à gérer
- Un grand nombre de machines différentes
- Surface d'attaque étendue
- Beaucoup de travail pour rendre tolérant aux pannes
- Peu efficace énergétiquement et économiquement
#+END_smallfont
#+BEGIN_note
Solution adaptée plutôt lorsque l'on a un petit nombre d'applications.
#+END_note
*** Machines virtuelles et hyperviseur
#+BEGIN_smallfont
Les applications sont déployées dans des machines virtuelles gérées par un hyperviseur.
- Isolation des ressources plus faible
- Meilleure flexibilité
- Meilleure efficacité énergétique et économique
- Gestion automatisable des pannes et de la charge
- Beaucoup de machines à administrer
#+END_smallfont
#+BEGIN_note
Solution adaptée à tout nombre d'applications.
#+END_note
*** Conteneurs et orchestrateur
#+BEGIN_smallfont
Les applications sont déployées dans des conteneurs qui sont gérés au sein d'un orchestrateur.
- Isolation des ressources plus faible
- Grande flexibilité
- Facilité d'automatisation
- Grande tolérance aux pannes (si correctement mis en place)
- Encore meilleure efficacité énergétique et économique
- Nécessite la maîtrise de l'orchestrateur en plus de compétences système
- Peut créer plus de problèmes si mauvaise mise en place ou mauvais choix
#+END_smallfont
#+BEGIN_note
Solution adaptée à tout nombre d'applications.
#+END_note
* Proxmox
#+ATTR_LATEX: :width 0.8\textwidth
[[file:./images/proxmox.png]]
** Un hyperviseur "/bare metal/"
- Sexécute directement sur le /hardware/
- Optimisé pour l'exécution de machines virtuelles
- *Pas comme /Virtual Box/*
* /Proxmox/
- Libre
- Basé sur /Debian/
- /KVM/ (machines virtuelles) et /LXC/ (conteneurs)
- Gestion via *terminal* ou *interface web*
- Orchestration, réplication, /cluster/
- Concurrent à /Hyper-V/ ou /ESXi/
- Gestion des sauvegardes
** Orchestration et mode /cluster/
- Gestion des réplications
- Gestion de la perte de machines
- Gestion des sauvegardes
** Machines virtuelles et conteneurs
*** Machine virtuelle
- Aussi appelé /VM/
- Embarque un système d'exploitation complet
- Isolation forte
- Lourd et nécessite plus de puissance
Les machines virtuelles sont souvent installées depuis un /ISO/, comme il serait fait pour une machine physique.
*** Conteneur
- Aussi appelé /CT/
- Embarque uniquement les fichiers nécessaires
- Plus léger
- Isolation plus faible
Les conteneurs sont installés depuis des /"Templates"/ qui possèdent des options de configuration.
Les /"Templates"/ sont des archives contenant un système de fichier.
* Note sur les /network bridges/
- Pont entre deux réseaux
- Comme un "/switch/ virtuel"
- Nécessaire pour permettre aux /VM/ et /CT/ l'accès au réseau
* Éléments de configuration
** Système
- Interfaces réseau virtuelles
- Pare-feu basique
- Gestion fine des permissions
** Machines virtuelles et conteneurs
- /CPU/ et mémoire vive
- Taille du (des) disque(s)
- Interfaces réseau
- Pare-feu basique
* L'interface
[[file:./images/pve_1.png]]
#+REVEAL: split
- *1*: Liste des ressources: machines, conteneurs, volumes de stockage
- *2*: Configuration de l'instance / du /cluster/
- *3*: Statut de l'instance /Proxmox/
- *4*: Boutons pour créer les machines
- *5*: Tâches en cours et historique
** Création d'une machine virtuelle (/VM/)
*** Onglet /"General"/
[[file:./images/vm_create_1.png]]
#+REVEAL: split
- /"Node"/: l'instance /Proxmox/ sur laquelle créer la /VM/
- /"VM ID"/: l'identifiant de la /VM/
- /"Name"/: le nom pour la /VM/
- /"Resource pool"/: la /pool/ de ressources à utiliser
*** Onglet /"OS"/
[[file:./images/vm_create_2.png]]
#+REVEAL: split
- /"Storage"/: l'espace de stockage où est stocké l'/ISO/
- /"ISO image"/: l'image /ISO/ à utiliser
*** Onglet /"Disks"/
[[file:./images/vm_create_3.png]]
#+REVEAL: split
- /"Storage"/: l'espace de stockage dans lequel sera stocké la /VM/
- /"Disk size"/: la taille du disque
*** Onglet /"CPU"/
[[file:./images/vm_create_4.png]]
#+REVEAL: split
- /"Sockets"/: le nombre de /CPU/ à virtualiser
- /"Cores"/: le nombre de cœurs par /CPU/
- /"Total cores"/: récapitulatif du nombre de cœurs qu'aura la /VM/
*** Onglet /"Memory"/
[[file:./images/vm_create_5.png]]
#+REVEAL: split
- /"Memory"/: la taille de la mémoire vive
*** Onglet /"Network"/
[[file:./images/vm_create_6.png]]
#+REVEAL: split
- /"Bridge"/: le pont réseau à utiliser
*** Onglet /"Confirm"/
[[file:./images/vm_create_7.png]]
#+REVEAL: split
Récapitule la configuration de la future machine virtuelle.
** Création d'un conteneur (/CT/)
Les onglets et options sont similaires à celles de la création d'une /VM/, avec quelques options en plus.
*** Onglet /"General"/
[[file:./images/ct_create_1.png]]
#+REVEAL: split
- /"Password"/ et /"Confirm password"/: mot de passe de l'utilisateur par défaut (souvent =root=)
- /"SSH public key"/: votre clef publique pour la connexion en /SSH/
*** Onglet /"Template"/
[[file:./images/ct_create_2.png]]
#+REVEAL: split
- /"Template"/: la /template/ à utiliser
*** Onglet /"Network"/
[[file:./images/ct_create_3.png]]
#+REVEAL: split
- /"IPv4/CIDR"/: l'adresse /IP/ qui sera assignée à l'interface réseau du conteneur
- /"Gateway"/: la passerelle réseau qui sera utilisée
** Notes à propos de la configuration
Vous pouvez modifier ces options à tout moment et les appliquer à la machine virtuelle ou au conteneur.
* Démonstration
[[file:./images/cat_keyboard.webp]]
* Pour aller plus loin
- Documentation /Proxmox/: =https://pve.proxmox.com/pve-docs/pve-admin-guide.html=
- Un autre guide: =https://www.it-connect.fr/comment-installer-proxmox-ve-7-0-et-creer-sa-premiere-vm/=

Binary file not shown.

@ -0,0 +1,272 @@
% Created 2024-05-08 mer. 11:48
% Intended LaTeX compiler: pdflatex
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{wrapfig}
\usepackage{rotating}
\usepackage[normalem]{ulem}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{capt-of}
\usepackage{hyperref}
\usepackage{minted}
\usepackage[utf8]{inputenc}
\usepackage[inkscapelatex=false]{svg}
\usepackage[sfdefault]{AlegreyaSans}
\usepackage{multicol}
\usepackage{minted}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{positioning}
\renewcommand\listingscaption{Exemple de code}
\date{}
\title{Cours de virtualisation avancée: \emph{Proxmox}}
\hypersetup{
pdfauthor={Evrard Van Espen},
pdftitle={Cours de virtualisation avancée: \emph{Proxmox}},
pdfkeywords={},
pdfsubject={},
pdfcreator={Emacs 30.0.50 (Org mode 9.6.15)},
pdflang={English}}
\begin{document}
\maketitle
\section{Proxmox}
\label{sec:orgc9ec9cc}
\begin{center}
\includegraphics[width=0.8\textwidth]{./images/proxmox.png}
\end{center}
\subsection{Un hyperviseur "\emph{bare metal}"}
\label{sec:org82707fe}
\begin{itemize}
\item Sexécute directement sur le \emph{hardware}
\item Optimisé pour l'exécution de machines virtuelles
\item \textbf{Pas comme \emph{Virtual Box}}
\end{itemize}
\section{\emph{Proxmox}}
\label{sec:org64b986f}
\begin{itemize}
\item Libre
\item Basé sur \emph{Debian}
\item \emph{KVM} (machines virtuelles) et \emph{LXC} (conteneurs)
\item Gestion via \textbf{terminal} ou \textbf{interface web}
\item Orchestration, réplication, \emph{cluster}
\item Concurrent à \emph{Hyper-V} ou \emph{ESXi}
\item Gestion des sauvegardes
\end{itemize}
\subsection{Orchestration et mode \emph{cluster}}
\label{sec:orgd0edd32}
\begin{itemize}
\item Gestion des réplications
\item Gestion de la perte de machines
\item Gestion des sauvegardes
\end{itemize}
\subsection{Machines virtuelles et conteneurs}
\label{sec:org5a598be}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/vm_ct.png}
\end{center}
\subsubsection{Machine virtuelle}
\label{sec:orgbeb0e4a}
\begin{itemize}
\item Aussi appelé \emph{VM}
\item Embarque un système d'exploitation complet
\item Isolation forte
\item Lourd et nécessite plus de puissance
\end{itemize}
Les machines virtuelles sont souvent installées depuis un \emph{ISO}, comme il serait fait pour une machine physique.
\subsubsection{Conteneur}
\label{sec:orgf9d4a68}
\begin{itemize}
\item Aussi appelé \emph{CT}
\item Embarque uniquement les fichiers nécessaires
\item Plus léger
\item Isolation plus faible
\end{itemize}
Les conteneurs sont installés depuis des \emph{"Templates"} qui possèdent des options de configuration.
Les \emph{"Templates"} sont des archives contenant un système de fichier.
\section{Note sur les \emph{network bridges}}
\label{sec:org9282cd0}
\begin{itemize}
\item Pont entre deux réseaux
\item Comme un "\emph{switch} virtuel"
\item Nécessaire pour permettre aux \emph{VM} et \emph{CT} l'accès au réseau
\end{itemize}
\section{Éléments de configuration}
\label{sec:org118ec7b}
\subsection{Système}
\label{sec:orgff9a5be}
\begin{itemize}
\item Interfaces réseau virtuelles
\item Pare-feu basique
\item Gestion fine des permissions
\end{itemize}
\subsection{Machines virtuelles et conteneurs}
\label{sec:org4f45eff}
\begin{itemize}
\item \emph{CPU} et mémoire vive
\item Taille du (des) disque(s)
\item Interfaces réseau
\item Pare-feu basique
\end{itemize}
\section{L'interface}
\label{sec:org15b18c1}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/pve_1.png}
\end{center}
\begin{itemize}
\item \textbf{1}: Liste des ressources: machines, conteneurs, volumes de stockage
\item \textbf{2}: Configuration de l'instance / du \emph{cluster}
\item \textbf{3}: Statut de l'instance \emph{Proxmox}
\item \textbf{4}: Boutons pour créer les machines
\item \textbf{5}: Tâches en cours et historique
\end{itemize}
\subsection{Création d'une machine virtuelle (\emph{VM})}
\label{sec:org8253353}
\subsubsection{Onglet \emph{"General"}}
\label{sec:orgb76a60b}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/vm_create_1.png}
\end{center}
\begin{itemize}
\item \emph{"Node"}: l'instance \emph{Proxmox} sur laquelle créer la \emph{VM}
\item \emph{"VM ID"}: l'identifiant de la \emph{VM}
\item \emph{"Name"}: le nom pour la \emph{VM}
\item \emph{"Resource pool"}: la \emph{pool} de ressources à utiliser
\end{itemize}
\subsubsection{Onglet \emph{"OS"}}
\label{sec:orga6286a1}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/vm_create_2.png}
\end{center}
\begin{itemize}
\item \emph{"Storage"}: l'espace de stockage où est stocké l'\emph{ISO}
\item \emph{"ISO image"}: l'image \emph{ISO} à utiliser
\end{itemize}
\subsubsection{Onglet \emph{"Disks"}}
\label{sec:orgef80c8b}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/vm_create_3.png}
\end{center}
\begin{itemize}
\item \emph{"Storage"}: l'espace de stockage dans lequel sera stocké la \emph{VM}
\item \emph{"Disk size"}: la taille du disque
\end{itemize}
\subsubsection{Onglet \emph{"CPU"}}
\label{sec:org0e6718a}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/vm_create_4.png}
\end{center}
\begin{itemize}
\item \emph{"Sockets"}: le nombre de \emph{CPU} à virtualiser
\item \emph{"Cores"}: le nombre de cœurs par \emph{CPU}
\item \emph{"Total cores"}: récapitulatif du nombre de cœurs qu'aura la \emph{VM}
\end{itemize}
\subsubsection{Onglet \emph{"Memory"}}
\label{sec:org8a43ab2}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/vm_create_5.png}
\end{center}
\begin{itemize}
\item \emph{"Memory"}: la taille de la mémoire vive
\end{itemize}
\subsubsection{Onglet \emph{"Network"}}
\label{sec:org228f120}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/vm_create_6.png}
\end{center}
\begin{itemize}
\item \emph{"Bridge"}: le pont réseau à utiliser
\end{itemize}
\subsubsection{Onglet \emph{"Confirm"}}
\label{sec:orge8aa03d}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/vm_create_7.png}
\end{center}
Récapitule la configuration de la future machine virtuelle.
\subsection{Création d'un conteneur (\emph{CT})}
\label{sec:orge477d74}
Les onglets et options sont similaires à celles de la création d'une \emph{VM}, avec quelques options en plus.
\subsubsection{Onglet \emph{"General"}}
\label{sec:org3e15c4d}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/ct_create_1.png}
\end{center}
\begin{itemize}
\item \emph{"Password"} et \emph{"Confirm password"}: mot de passe de l'utilisateur par défaut (souvent \texttt{root})
\item \emph{"SSH public key"}: votre clef publique pour la connexion en \emph{SSH}
\end{itemize}
\subsubsection{Onglet \emph{"Template"}}
\label{sec:org4e06550}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/ct_create_2.png}
\end{center}
\begin{itemize}
\item \emph{"Template"}: la \emph{template} à utiliser
\end{itemize}
\subsubsection{Onglet \emph{"Network"}}
\label{sec:orge8f74d0}
\begin{center}
\includegraphics[width=.9\linewidth]{./images/ct_create_3.png}
\end{center}
\begin{itemize}
\item \emph{"IPv4/CIDR"}: l'adresse \emph{IP} qui sera assignée à l'interface réseau du conteneur
\item \emph{"Gateway"}: la passerelle réseau qui sera utilisée
\end{itemize}
\subsection{Notes à propos de la configuration}
\label{sec:org2a50315}
Vous pouvez modifier ces options à tout moment et les appliquer à la machine virtuelle ou au conteneur.
\section{Démonstration}
\label{sec:org1ba6cb6}
\url{./images/cat\_keyboard.webp}
\section{Pour aller plus loin}
\label{sec:orgecf2397}
\begin{itemize}
\item Documentation \emph{Proxmox}: \texttt{https://pve.proxmox.com/pve-docs/pve-admin-guide.html}
\item Un autre guide: \texttt{https://www.it-connect.fr/comment-installer-proxmox-ve-7-0-et-creer-sa-premiere-vm/}
\end{itemize}
\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

File diff suppressed because one or more lines are too long

@ -0,0 +1,336 @@
#+TITLE: Cours de virtualisation avancée: /Kubernetes/, introduction
#+OPTIONS: toc:nil date:nil author:nil reveal_single_file:t timestamp:nil
#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [12pt,a4paper]
#+LATEX_HEADER: \usepackage[utf8]{inputenc}
#+LATEX_HEADER: \usepackage[inkscapelatex=false]{svg}
#+LATEX_HEADER: \usepackage[sfdefault]{AlegreyaSans}
#+LATEX_HEADER: \usepackage{multicol}
#+LATEX_HEADER: \usepackage{minted}
#+LATEX_HEADER: \usepackage{float}
#+LATEX_HEADER: \usepackage{tikz}
#+LATEX_HEADER: \usetikzlibrary{positioning}
#+LATEX_HEADER: \renewcommand\listingscaption{Exemple de code}
#+REVEAL_THEME: white
#+REVEAL_INIT_OPTIONS: slideNumber:true
#+REVEAL_EXTRA_CSS: ../common/reveal_custom.css
* Introduction, les /clusters/
- Grappe de serveur
- Groupe de machines fonctionnant ensemble
* /Kubernetes/
[[file:./images/kube_logo.png]]
** C'est quoi ?
- Ancien mot grec signifiant "timonier" (marin qui tient la barre)
- Souvent abrégé /"K8S"/
- Système /open-source/ pour le *déploiement*, la *mise à léchelle* et *gestion* de conteneurs
- Configuration via des fichiers /YAML/
** Origine
- Lancé par /Google/ en 2014
- /Google/ s'associe à la /Linux Foundation/ pour créer la /CNCF/ en utilisant /K8S/ comme projet de départ
/CNCF/: /Cloud Native Computer Foundation/
** Quelques statistiques
- 66% : c'est le nombre d'entreprises qui utilisent /K8S/ en prod en 2023 [[[source:cncf_survey]]]
- Entre 2018 et 2020 : /K8S/ top 10 projets les plus actifs /Github/
- Le nombre de conteneurs en prod dans le monde est inestimable mais /Google/ estime en lancer *2 milliards par semaine*
* Le monde des conteneurs
[[file:./images/containers.webp]]
** Des applications souvent présentes
[[file:./images/top_container_images.png]]
#+REVEAL: split
#+BEGIN_smallfont
| *Redis* | BDD clef-valeur |
| *ElasticSearch* | NOSQL / moteur de recherche |
| *Postgresql* | base de données SQL |
| *RabbitMQ* | agent de message |
| *Kafka* | agent de message / événements |
| *Vault* | BDD sécurisés |
| *Mongo* | BDD NOSQL |
| *Nginx* | serveur web |
| *Consul* | gestion de réseau |
| *MySql* | BDD SQL |
#+END_smallfont
** Plusieurs orchestrateurs
*** */Kubernetes/*
#+BEGIN_imagecol
[[file:./images/k8s_logo.png]]
#+END_imagecol
#+BEGIN_textcol
Le plus connu et utilisé, objet de ce cours
#+END_textcol
*** /*Nomad*/
#+BEGIN_imagecol
[[file:./images/nomad_logo.png]]
#+END_imagecol
#+BEGIN_textcol
Proposé par /Hashicorp/, solution d'orchestration hybride entre conteneurs, machines virtuelles et machines physiques.
#+END_textcol
*** /*Docker Swarm*/
#+BEGIN_imagecol
[[file:./images/swarm_logo.png]]
#+END_imagecol
#+BEGIN_textcol
Proposé par /Docker/, solution plus simple mais qui ne permet pas une utilisation aussi avancée.
#+END_textcol
*** /*Rancher*/
#+BEGIN_imagecol
[[file:./images/rancher_logo.png]]
#+END_imagecol
#+BEGIN_textcol
Une surcouche à /Kubernetes/ qui permet de simplifier son utilisation à grande échelle.
#+END_textcol
** Solutions à louer
[[file:./images/eks_logo.png]]
[[file:./images/aks_logo.png]]
[[file:./images/gke_logo.png]]
* Pourquoi un orchestrateur
[[file:./images/why.gif]]
#+REVEAL: split
- Déploiement et mise à l'échelle automatique
- Haute disponibilité / réplication
- Optimisation des ressources
- Supervision et journalisation
** Déploiement et mise à l'échelle automatique
- Déploiement via de la /CI/
- Mises à jours automatiques des conteneurs
- Allocation automatique des ressources
** Haute disponibilité
- Réplication des applications
- Pour les performances
- Pour la sécurité
- Tolérance aux pannes de machines
** Optimisation des ressources
- Utilisation de conteneurs
- Choix des cibles de déploiement en fonction de leur usage et occupation
- Dé-allocation des ressources en cas de baisse de charge
** Supervision et journalisation
- Gestion unifiée des journaux
- Outils automatisés
* /Kubernetes/
** Terminologie et concepts
- /Namespace/ ::
- Un "espace de noms"
- Permet de regrouper les ressources pour s'y retrouver et simplifier la gestion
#+REVEAL: split
- /Pod/ ::
[[https://kubernetes.io/fr/docs/concepts/workloads/pods/pod-overview/][doc]]
- La plus petite unité d'exécution
- C'est dans ces éléments que sont présents les conteneurs
- Réseau local entre les conteneurs d'un même /pod/
#+REVEAL: split
- /Service/ ::
[[https://kubernetes.io/fr/docs/concepts/services-networking/service/][doc]]
- Une manière d'exposer une application s'exécutant sur un ensemble de /pods/ en tant que service réseau
- Possède une adresse /IP/ et un nom /DNS/
- Permet l'équilibration de la charge
#+REVEAL: split
- /Volume/ ::
[[https://kubernetes.io/fr/docs/concepts/storage/volumes/][doc]]
- Permet le stockage des fichiers d'un /pod/ (sinon fichiers perdu lors de la destruction du /pod/)
- Permet de partager des fichiers entre des conteneurs au sein d'un /pod/
#+REVEAL: split
Il reste encore une multitudes de concepts et de termes propres à /Kubernetes/.
Je vous invite donc à consulter cette page: [[https://kubernetes.io/fr/docs/concepts/][https://kubernetes.io/fr/docs/concepts/]].
** Architecture
[[file:./images/k8s_cluster.png]]
#+REVEAL: split
- Composé de plusieurs nœuds
- Au moins 1 nœud de gestion et 1 nœud de travail
*** Nœud de gestion
- Aussi appelé /"control plane"/ dans la terminologie /K8S/
- Composant principal
- Gestion de la charge de travail
- Services qui contrôlent le /cluster/
#+REVEAL: split
- /etcd/ :: stocke les éléments de configuration
- /API server/ :: reçoit et traite les requêtes de gestion. Vérifie en permanence que l'état du /cluster/ correspond aux configurations stockées dans =etcd=
- /Scheduler/ :: se charge de la répartition de la charge
- /Controller manager/ :: applique les actions requises à la gestion du /cluster/
*** Nœud de travail
- C'est sur ces nœuds que les conteneurs sont déployés
- Cela peut être des machines physiques ou virtuelles
#+REVEAL: split
- /kubelet/ ou /node manager/ ::
- Se charge de la gestion des /pods/ sur le nœud
- Reçoit ses ordres du /control plane/
- Informe le /control plane/ de l'état du nœud
- /kube-proxy/ ::
- Se charge de la gestion du réseau
- /container runtime/ ::
L'environnement dexécution des conteneurs, souvent /Docker/
* Prise en main
- Les interactions avec /K8S/ se font via la commande =kubectl=.
- Quelques interactions sont aussi possible via le /dashboard/ mais ce dernier est limité et ne sera pas abordé pendant ce cours.
** Lister des ressources
#+BEGIN_NOTE
Syntaxe:
=kubectl get <ressource>=
#+END_NOTE
#+BEGIN_SRC bash
kubectl get pods
NAME READY STATUS RESTARTS AGE
profiles-app 3/3 Running 0 22s
#+END_SRC
#+BEGIN_SRC bash
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
profiles-app-svc LoadBalancer 10.97.188.25 <pending> 8000:30487/TCP,8001:32451/TCP 5s
#+END_SRC
** Lire les journaux d'un /pod/
#+BEGIN_NOTE
Syntaxe:
=kubectl logs <nom ressource>=
#+END_NOTE
#+BEGIN_SRC bash
kubectl logs profiles-app
...
#+END_SRC
** Supprimer une ressource
#+BEGIN_NOTE
Syntaxe:
=kubectl delete <type ressource> <nom ressource>=
#+END_NOTE
#+BEGIN_SRC bash
kubectl delete pods profiles-app
pod "profiles-app" deleted
#+END_SRC
** Décrire une ressource
#+BEGIN_NOTE
Syntaxe:
=kubectl describe <type ressource> <nom ressource>=
#+END_NOTE
#+BEGIN_SRC bash
kubectl -n profiles-app describe pod profiles-app
Name: profiles-app
Namespace: profiles-app
Priority: 0
Service Account: default
Node: minikube/192.168.49.2
Start Time: Thu, 09 May 2024 17:35:54 +0200
Labels: run=profiles-app
Annotations: <none>
Status: Running
IP: 10.244.0.7
...
#+END_SRC
** Créer des ressources
*** Le /YAML/
#+BEGIN_smallfont
Dans /K8S/ les ressources se créent depuis des fichiers /YAML/ décrivant la ressource en question et ses paramètres.
Le language /YAML/ est un language de sérialisation semblale à /JSON/.
L'extension de fichier est =.yaml= ou =.yml=.
Exemple de fichier /YAML/:
#+END_smallfont
#+BEGIN_SRC yaml
---
clef: valeur
liste_de_nombres:
- 1
- 2
- 3
liste_de_clefs_valeurs:
- titre: blade_runner
note: 10
#+END_SRC
*** Types de ressources et exemples
**** /Namespace/
[[https://kubernetes.io/docs/tasks/administer-cluster/namespaces/#creating-a-new-namespace][doc]]
#+BEGIN_SRC yaml
---
apiVersion: v1 # nécessaire pour que K8S comprenne
kind: Namespace # le type de ressource
metadata: # les informations de la ressource
name: profiles-app # ici, son nom
#+END_SRC
**** /Pod/
#+BEGIN_SRC yaml
---
apiVersion: v1
kind: Pod # ici le type est "pod"
metadata:
namespace: profiles-app # on choisi le namespace
name: profiles-app # le nom du pod
spec: # puis ses spécifications
containers: # il contient des conteneurs
- name: database # nom du conteneur
image: image:latest # l'image à utiliser
env: # on peux mettre des variables d'environnement
- name: COULEUR # avec un nom
value: "rouge" # et une valeur
#+END_SRC
* Aller plus loin
- [1] <<source:cncf_survey>> [[https://www.cncf.io/reports/cncf-annual-survey-2023/][https://www.cncf.io/reports/cncf-annual-survey-2023/]]

@ -0,0 +1,50 @@
% Intended LaTeX compiler: pdflatex
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{wrapfig}
\usepackage{rotating}
\usepackage[normalem]{ulem}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{capt-of}
\usepackage{hyperref}
\usepackage{minted}
\usepackage[utf8]{inputenc}
\usepackage[inkscapelatex=false]{svg}
\usepackage[sfdefault]{AlegreyaSans}
\usepackage{multicol}
\usepackage{minted}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{positioning}
\renewcommand\listingscaption{Exemple de code}
\date{}
\title{Cours de virtualisation avancée: \emph{Proxmox}}
\hypersetup{
pdfauthor={Evrard Van Espen},
pdftitle={Cours de virtualisation avancée: \emph{Proxmox}},
pdfkeywords={},
pdfsubject={},
pdfcreator={Emacs 30.0.50 (Org mode 9.6.15)},
pdflang={English}}
\begin{document}
\maketitle
\begin{center}
\includegraphics[width=.9\linewidth]{./images/k8s_logo.png}
\end{center}
\section{\emph{Kubernetes}}
\label{sec:orga8614f4}
\begin{leftcol}
toto
\end{leftcol}
\begin{rightcol}
titi
\end{rightcol}
\end{document}

@ -0,0 +1,158 @@
\mode<presentation>
% Requirement
\RequirePackage{tikz}
\RequirePackage{etoolbox}
\useinnertheme{rectangles}
\setbeamertemplate{background canvas}{\includegraphics[width=\paperwidth,height=\paperheight]{../common/bg.pdf}}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{itemize item}[triangle]
%\setbeamertemplate{itemize subitem}[circle]
\setbeamertemplate{itemize subitem}{$\rhd$}
\setbeamertemplate{itemize subsubitem}[circle]
%colortheme
\definecolor{iut}{RGB}{149,193,31}
\definecolor{gris}{RGB}{89,89,89}
\definecolor{ficelle}{RGB}{205,200,191}
\definecolor{attention}{RGB}{214,141,123}
\definecolor{code highlight}{RGB}{239,233,228}%
\setbeamercolor*{palette primary}{fg=iut,bg=gris}
\setbeamercolor*{title}{fg=iut, bg=white}
\setbeamercolor*{subtitle}{fg=gris, bg=white}
\setbeamercolor*{title page header}{fg=iut, bg=white}
\setbeamercolor*{subtitle page header}{fg=gris, bg=white}
\setbeamercolor*{foot}{fg=white, bg=iut}
\setbeamercolor*{foot number}{fg=gris, bg=white}
\setbeamercolor{part title}{fg=iut}
\setbeamercolor{structure}{fg=iut}
%\setbeamercolor{itemize item}{fg=iut}
%\setbeamercolor{itemize subitem}{fg=iut}
%\setbeamercolor{itemize subsubitem}{fg=iut}
%\setbeamercolor{enumerate item}{fg=iut}
%\setbeamercolor{enumerate subitem}{fg=iut}
%\setbeamercolor{enumerate subsubitem}{fg=iut}
%\setbeamercolor{item projected}{fg=white, bg=iut}
%\setbeamercolor{subitem projected}{fg=white, bg=iut}
%\setbeamercolor{subsubitem projected}{fg=white, bg=iut}
\setbeamercolor{alerted text}{fg=iut}
\setbeamercolor{example text}{fg=ficelle}
\setbeamercolor{block title}{use=palette primary, fg=white, bg=palette primary.fg}
\setbeamercolor{block body}{use=palette primary, bg=palette primary.fg!7}
\setbeamercolor{block title example}{fg=white, bg=ficelle}
\setbeamercolor{block body example}{parent=normal text, bg=ficelle!10!white}
\setbeamercolor{block title alerted}{fg=white,bg=attention}
\setbeamercolor{block body alerted}{parent=normal text, bg=attention!10!white}
\AtBeginEnvironment{alertblock}{\setbeamercolor{alerted text}{fg=attention}}
%fonttheme
\setbeamerfont{title}{size=\LARGE,series=\bfseries}
\setbeamerfont{subtitle}{size=\large,shape=\scshape,series=\bfseries}
\setbeamerfont{date}{size=\footnotesize}
\setbeamerfont{frame title}{size=\Large,series=\bfseries}
\setbeamerfont{frame subtitle}{size=\normalsize,shape=\scshape,series=\bfseries}
%%innertheme
\defbeamertemplate*{title page}{IUT}[1][]{
\vfill
\begin{beamercolorbox}[wd=.9\paperwidth, sep=5pt, center, #1]{title page header}
\usebeamerfont{title}\inserttitle\par%
\ifx\insertsubtitle\@empty%
\else%
\vskip.3em%
{\usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}\insertsubtitle\par}%
\fi%
\end{beamercolorbox}
\vskip1.5em\par
\begin{beamercolorbox}[sep=8pt,center,#1]{author}
\usebeamerfont{author}\mdseries\large\insertauthor
\end{beamercolorbox}
\vfill
\begin{beamercolorbox}[sep=8pt,center,#1]{institute}
\insertinstitute
\end{beamercolorbox}
\begin{beamercolorbox}[sep=8pt,center,#1]{date}
\usebeamerfont{date}\insertdate
\end{beamercolorbox}
\vfill
}
%outertheme
\defbeamertemplate*{frametitle}{IUT}[1][]{
\begin{beamercolorbox}[wd=\paperwidth, sep=10pt, #1, ignorebg]{title page header}
\usebeamerfont{frame title}\insertframetitle\par%
\end{beamercolorbox}%
\ifx\insertframesubtitle\@empty%
\else%
\nointerlineskip%
\begin{beamercolorbox}[wd=\paperwidth, sep=2pt, #1, leftskip=25pt, ignorebg]{subtitle page header}
\usebeamerfont{frame subtitle}\usebeamercolor[fg]{subtitle page header}\insertframesubtitle\par%
\end{beamercolorbox}%
\fi%
\vspace{-1em}
}
\defbeamertemplate*{footline}{IUT}{
\leavevmode
\begin{tikzpicture}[overlay, every node/.style={scale=.8, transform shape}]
\usebeamercolor[bg]{foot}
\draw[fill] (8ex,3ex) circle (4.8ex);
\usebeamercolor[fg]{foot}
\draw[fill] (8ex,3ex) circle (4ex);
\usebeamercolor[fg]{foot number}
\node[scale=1.5] at (8ex,3ex) {$^\text{\insertframenumber}/_\text{\insertmainframenumber}$};
\end{tikzpicture}
\raisebox{3ex}{\hspace*{15ex}\insertsection}
}
\let\oldtt\texttt
\renewcommand{\texttt}[1]{\colorbox{code highlight}{\oldtt{#1}}}
\AtBeginSection[]{
\begin{frame}
\vfill
\begin{center}
\begin{tikzpicture}
\fill[iut, rounded corners] (-4,-1.5) rectangle (4,1.5);
\node[white, font=\huge, text width=7cm, align=center] at (0,0) {\insertsectionhead};
\end{tikzpicture}
\end{center}
\vfill
\end{frame}
}
\mode<all>
\newcommand{\colorExtract}[3]{
\usebeamercolor{#1}
\definecolor{#2}{named}{fg}
\definecolor{#3}{named}{bg}
}
\colorExtract{palette primary}{iut}{gris}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 368 KiB

Binary file not shown.

File diff suppressed because one or more lines are too long

@ -0,0 +1,17 @@
from: markdown
to: latex
standalone: true
pdf-engine: xelatex
number-sections: true
variables:
lang: fr
papersize: a4
mainfont: CharisSIL-Regular.ttf
mainfontoptions:
- BoldFont=CharisSIL-Bold.ttf
- ItalicFont=CharisSIL-Italic.ttf
- BoldItalicFont=CharisSIL-BoldItalic.ttf
include-in-header:
- ${.}/tdtp_header.tex

@ -0,0 +1,48 @@
\usepackage{graphicx}
%\usepackage[left=2cm,right=2cm,top=1cm,bottom=2cm]{geometry}
\usepackage{fullpage}
\setlength\textheight{24.6cm}
\usepackage{hyperref}
\hypersetup{
colorlinks = true,
urlcolor = gray,
breaklinks,
pdfborder = 0 0 0,
pdfpagemode = UseNone,
pdfstartpage = 1,
pdfcreator = {XeLaTeX},
bookmarksopen = true,
pdfauthor = {IUT Clermont Auvergne},
pdftitle = {Développement Orienté Objet - C++},
pdfsubject = {TD/TP C++},
pdfkeywords = {POO, C++, BUT 1A, IUT}
}
\AddToHook{shipout/firstpage}{%
\makebox[\textwidth]{%
\raisebox{-3ex}{\includegraphics[height=22mm]{logo-IUT-CA}}%
\hfill \large BUT 1A}}
\makeatletter
\def\@maketitle{%
\newpage%
\null%
\vskip 2em%
\begin{center}%
\let \footnote \thanks%
{\LARGE \@title \par}%
\vskip 1.5em%
% {\large%
% \lineskip .5em%
% \begin{tabular}[t]{c}%
% \@author%
% \end{tabular}\par}%
% \vskip 1em%
% {\large \@date}%
\end{center}%
\par%
% \vskip 1.5em
}
\makeatother

@ -0,0 +1,41 @@
<mxfile host="Electron" modified="2024-05-05T09:06:27.747Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.2.5 Chrome/120.0.6099.109 Electron/28.1.0 Safari/537.36" etag="K9LxMHZA_dAgDtwJxIXA" version="24.2.5" type="device">
<diagram name="Page-1" id="zzLOAKPai17-oug5F4e8">
<mxGraphModel dx="1183" dy="717" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="mFVLm2ihejuUD40xILaS-6" value="" style="endArrow=none;dashed=1;html=1;rounded=0;strokeWidth=3;fillColor=#f8cecc;strokeColor=#b85450;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="280" y="274.58" as="sourcePoint" />
<mxPoint x="560" y="275" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="mFVLm2ihejuUD40xILaS-7" value="Réseau public&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div style=&quot;&quot;&gt;Réseau privé / interne&lt;/div&gt;" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;" vertex="1" connectable="0" parent="mFVLm2ihejuUD40xILaS-6">
<mxGeometry x="0.7851" y="2" relative="1" as="geometry">
<mxPoint x="-40" y="2" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mFVLm2ihejuUD40xILaS-4" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=0;startArrow=block;startFill=0;" edge="1" parent="1" source="mFVLm2ihejuUD40xILaS-1" target="mFVLm2ihejuUD40xILaS-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mFVLm2ihejuUD40xILaS-1" value="Internet" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="360" y="140" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="mFVLm2ihejuUD40xILaS-5" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;endArrow=block;endFill=0;startArrow=block;startFill=0;" edge="1" parent="1" source="mFVLm2ihejuUD40xILaS-2" target="mFVLm2ihejuUD40xILaS-3">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="mFVLm2ihejuUD40xILaS-8" value="Lien en réseau privé" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="mFVLm2ihejuUD40xILaS-5">
<mxGeometry x="0.17" y="-1" relative="1" as="geometry">
<mxPoint x="61" as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="mFVLm2ihejuUD40xILaS-2" value="Serveur &lt;i&gt;&quot;proxy&quot;&lt;/i&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="360" y="250" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="mFVLm2ihejuUD40xILaS-3" value="Serveur &lt;i&gt;&quot;applicatif&quot;&lt;/i&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="360" y="350" width="120" height="50" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

@ -0,0 +1,247 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="233.03999" height="191.03999" viewBox="0 0 233.03999 191.03999">
<defs>
<g>
<g id="glyph-0-0">
<path d="M 4.5 0 L 3.09375 -2.265625 L 1.390625 -2.265625 L 1.390625 0 L 0.65625 0 L 0.65625 -5.453125 L 3.21875 -5.453125 C 3.832031 -5.453125 4.304688 -5.3125 4.640625 -5.03125 C 4.972656 -4.757812 5.140625 -4.378906 5.140625 -3.890625 C 5.140625 -3.484375 5.019531 -3.140625 4.78125 -2.859375 C 4.539062 -2.585938 4.21875 -2.414062 3.8125 -2.34375 L 5.359375 0 Z M 4.390625 -3.890625 C 4.390625 -4.203125 4.28125 -4.441406 4.0625 -4.609375 C 3.851562 -4.773438 3.546875 -4.859375 3.140625 -4.859375 L 1.390625 -4.859375 L 1.390625 -2.84375 L 3.171875 -2.84375 C 3.554688 -2.84375 3.851562 -2.929688 4.0625 -3.109375 C 4.28125 -3.296875 4.390625 -3.554688 4.390625 -3.890625 Z M 4.390625 -3.890625 "/>
</g>
<g id="glyph-0-1">
<path d="M 1.0625 -1.953125 C 1.0625 -1.460938 1.160156 -1.085938 1.359375 -0.828125 C 1.554688 -0.566406 1.847656 -0.4375 2.234375 -0.4375 C 2.535156 -0.4375 2.773438 -0.5 2.953125 -0.625 C 3.140625 -0.75 3.265625 -0.90625 3.328125 -1.09375 L 3.9375 -0.90625 C 3.6875 -0.25 3.117188 0.078125 2.234375 0.078125 C 1.617188 0.078125 1.148438 -0.101562 0.828125 -0.46875 C 0.503906 -0.84375 0.34375 -1.394531 0.34375 -2.125 C 0.34375 -2.8125 0.503906 -3.335938 0.828125 -3.703125 C 1.148438 -4.078125 1.609375 -4.265625 2.203125 -4.265625 C 3.429688 -4.265625 4.046875 -3.519531 4.046875 -2.03125 L 4.046875 -1.953125 Z M 3.328125 -2.484375 C 3.296875 -2.921875 3.1875 -3.238281 3 -3.4375 C 2.8125 -3.644531 2.546875 -3.75 2.203125 -3.75 C 1.859375 -3.75 1.585938 -3.632812 1.390625 -3.40625 C 1.191406 -3.1875 1.085938 -2.878906 1.078125 -2.484375 Z M 1.703125 -4.640625 L 1.703125 -4.71875 L 2.546875 -5.828125 L 3.34375 -5.828125 L 3.34375 -5.71875 L 2.0625 -4.640625 Z M 1.703125 -4.640625 "/>
</g>
<g id="glyph-0-2">
<path d="M 3.671875 -1.15625 C 3.671875 -0.757812 3.519531 -0.453125 3.21875 -0.234375 C 2.925781 -0.0234375 2.515625 0.078125 1.984375 0.078125 C 1.453125 0.078125 1.046875 -0.00390625 0.765625 -0.171875 C 0.484375 -0.347656 0.300781 -0.617188 0.21875 -0.984375 L 0.828125 -1.109375 C 0.890625 -0.878906 1.015625 -0.710938 1.203125 -0.609375 C 1.390625 -0.503906 1.648438 -0.453125 1.984375 -0.453125 C 2.328125 -0.453125 2.582031 -0.503906 2.75 -0.609375 C 2.914062 -0.722656 3 -0.890625 3 -1.109375 C 3 -1.265625 2.941406 -1.394531 2.828125 -1.5 C 2.710938 -1.601562 2.53125 -1.691406 2.28125 -1.765625 L 1.78125 -1.890625 C 1.382812 -1.992188 1.097656 -2.09375 0.921875 -2.1875 C 0.753906 -2.289062 0.625 -2.410156 0.53125 -2.546875 C 0.4375 -2.691406 0.390625 -2.867188 0.390625 -3.078125 C 0.390625 -3.460938 0.523438 -3.753906 0.796875 -3.953125 C 1.066406 -4.148438 1.460938 -4.25 1.984375 -4.25 C 2.441406 -4.25 2.804688 -4.164062 3.078125 -4 C 3.359375 -3.84375 3.53125 -3.582031 3.59375 -3.21875 L 2.96875 -3.15625 C 2.9375 -3.332031 2.832031 -3.46875 2.65625 -3.5625 C 2.488281 -3.664062 2.265625 -3.71875 1.984375 -3.71875 C 1.671875 -3.71875 1.4375 -3.671875 1.28125 -3.578125 C 1.132812 -3.484375 1.0625 -3.34375 1.0625 -3.15625 C 1.0625 -3.03125 1.09375 -2.925781 1.15625 -2.84375 C 1.21875 -2.769531 1.304688 -2.707031 1.421875 -2.65625 C 1.546875 -2.601562 1.804688 -2.53125 2.203125 -2.4375 C 2.566406 -2.34375 2.828125 -2.253906 2.984375 -2.171875 C 3.148438 -2.097656 3.28125 -2.007812 3.375 -1.90625 C 3.46875 -1.8125 3.539062 -1.703125 3.59375 -1.578125 C 3.644531 -1.453125 3.671875 -1.3125 3.671875 -1.15625 Z M 3.671875 -1.15625 "/>
</g>
<g id="glyph-0-3">
<path d="M 1.0625 -1.953125 C 1.0625 -1.460938 1.160156 -1.085938 1.359375 -0.828125 C 1.554688 -0.566406 1.847656 -0.4375 2.234375 -0.4375 C 2.535156 -0.4375 2.773438 -0.5 2.953125 -0.625 C 3.140625 -0.75 3.265625 -0.90625 3.328125 -1.09375 L 3.9375 -0.90625 C 3.6875 -0.25 3.117188 0.078125 2.234375 0.078125 C 1.617188 0.078125 1.148438 -0.101562 0.828125 -0.46875 C 0.503906 -0.84375 0.34375 -1.394531 0.34375 -2.125 C 0.34375 -2.8125 0.503906 -3.335938 0.828125 -3.703125 C 1.148438 -4.078125 1.609375 -4.265625 2.203125 -4.265625 C 3.429688 -4.265625 4.046875 -3.519531 4.046875 -2.03125 L 4.046875 -1.953125 Z M 3.328125 -2.484375 C 3.296875 -2.921875 3.1875 -3.238281 3 -3.4375 C 2.8125 -3.644531 2.546875 -3.75 2.203125 -3.75 C 1.859375 -3.75 1.585938 -3.632812 1.390625 -3.40625 C 1.191406 -3.1875 1.085938 -2.878906 1.078125 -2.484375 Z M 3.328125 -2.484375 "/>
</g>
<g id="glyph-0-4">
<path d="M 1.59375 0.078125 C 1.175781 0.078125 0.863281 -0.03125 0.65625 -0.25 C 0.445312 -0.476562 0.34375 -0.785156 0.34375 -1.171875 C 0.34375 -1.597656 0.484375 -1.925781 0.765625 -2.15625 C 1.046875 -2.394531 1.503906 -2.519531 2.140625 -2.53125 L 3.078125 -2.546875 L 3.078125 -2.78125 C 3.078125 -3.125 3.003906 -3.367188 2.859375 -3.515625 C 2.722656 -3.660156 2.5 -3.734375 2.1875 -3.734375 C 1.875 -3.734375 1.644531 -3.679688 1.5 -3.578125 C 1.363281 -3.472656 1.28125 -3.300781 1.25 -3.0625 L 0.515625 -3.140625 C 0.640625 -3.890625 1.203125 -4.265625 2.203125 -4.265625 C 2.722656 -4.265625 3.113281 -4.144531 3.375 -3.90625 C 3.644531 -3.664062 3.78125 -3.316406 3.78125 -2.859375 L 3.78125 -1.046875 C 3.78125 -0.847656 3.804688 -0.691406 3.859375 -0.578125 C 3.921875 -0.472656 4.023438 -0.421875 4.171875 -0.421875 C 4.242188 -0.421875 4.320312 -0.429688 4.40625 -0.453125 L 4.40625 -0.015625 C 4.226562 0.015625 4.050781 0.03125 3.875 0.03125 C 3.613281 0.03125 3.421875 -0.0351562 3.296875 -0.171875 C 3.179688 -0.304688 3.117188 -0.515625 3.109375 -0.796875 L 3.078125 -0.796875 C 2.898438 -0.484375 2.691406 -0.257812 2.453125 -0.125 C 2.222656 0.0078125 1.9375 0.078125 1.59375 0.078125 Z M 1.765625 -0.4375 C 2.015625 -0.4375 2.238281 -0.492188 2.4375 -0.609375 C 2.632812 -0.734375 2.789062 -0.894531 2.90625 -1.09375 C 3.019531 -1.300781 3.078125 -1.507812 3.078125 -1.71875 L 3.078125 -2.0625 L 2.328125 -2.046875 C 1.992188 -2.046875 1.742188 -2.015625 1.578125 -1.953125 C 1.410156 -1.890625 1.28125 -1.789062 1.1875 -1.65625 C 1.09375 -1.53125 1.046875 -1.363281 1.046875 -1.15625 C 1.046875 -0.925781 1.109375 -0.75 1.234375 -0.625 C 1.359375 -0.5 1.535156 -0.4375 1.765625 -0.4375 Z M 1.765625 -0.4375 "/>
</g>
<g id="glyph-0-5">
<path d="M 1.21875 -4.1875 L 1.21875 -1.53125 C 1.21875 -1.257812 1.242188 -1.046875 1.296875 -0.890625 C 1.347656 -0.734375 1.429688 -0.617188 1.546875 -0.546875 C 1.671875 -0.484375 1.847656 -0.453125 2.078125 -0.453125 C 2.410156 -0.453125 2.671875 -0.566406 2.859375 -0.796875 C 3.054688 -1.035156 3.15625 -1.359375 3.15625 -1.765625 L 3.15625 -4.1875 L 3.859375 -4.1875 L 3.859375 -0.890625 C 3.859375 -0.398438 3.863281 -0.101562 3.875 0 L 3.21875 0 C 3.21875 -0.0078125 3.210938 -0.0390625 3.203125 -0.09375 C 3.203125 -0.15625 3.203125 -0.222656 3.203125 -0.296875 C 3.203125 -0.367188 3.195312 -0.507812 3.1875 -0.71875 L 3.171875 -0.71875 C 3.015625 -0.425781 2.832031 -0.21875 2.625 -0.09375 C 2.414062 0.0195312 2.15625 0.078125 1.84375 0.078125 C 1.382812 0.078125 1.046875 -0.0351562 0.828125 -0.265625 C 0.617188 -0.492188 0.515625 -0.867188 0.515625 -1.390625 L 0.515625 -4.1875 Z M 1.21875 -4.1875 "/>
</g>
<g id="glyph-0-6">
</g>
<g id="glyph-0-7">
<path d="M 4.078125 -2.109375 C 4.078125 -0.648438 3.5625 0.078125 2.53125 0.078125 C 1.882812 0.078125 1.453125 -0.164062 1.234375 -0.65625 L 1.21875 -0.65625 C 1.226562 -0.632812 1.234375 -0.414062 1.234375 0 L 1.234375 1.640625 L 0.53125 1.640625 L 0.53125 -3.328125 C 0.53125 -3.753906 0.523438 -4.039062 0.515625 -4.1875 L 1.1875 -4.1875 C 1.1875 -4.175781 1.1875 -4.140625 1.1875 -4.078125 C 1.195312 -4.015625 1.203125 -3.914062 1.203125 -3.78125 C 1.210938 -3.644531 1.21875 -3.554688 1.21875 -3.515625 L 1.234375 -3.515625 C 1.359375 -3.773438 1.519531 -3.960938 1.71875 -4.078125 C 1.925781 -4.203125 2.195312 -4.265625 2.53125 -4.265625 C 3.050781 -4.265625 3.4375 -4.085938 3.6875 -3.734375 C 3.945312 -3.390625 4.078125 -2.847656 4.078125 -2.109375 Z M 3.34375 -2.09375 C 3.34375 -2.675781 3.265625 -3.09375 3.109375 -3.34375 C 2.953125 -3.59375 2.703125 -3.71875 2.359375 -3.71875 C 2.078125 -3.71875 1.859375 -3.660156 1.703125 -3.546875 C 1.546875 -3.429688 1.425781 -3.25 1.34375 -3 C 1.269531 -2.757812 1.234375 -2.441406 1.234375 -2.046875 C 1.234375 -1.492188 1.316406 -1.085938 1.484375 -0.828125 C 1.660156 -0.566406 1.945312 -0.4375 2.34375 -0.4375 C 2.6875 -0.4375 2.9375 -0.5625 3.09375 -0.8125 C 3.257812 -1.070312 3.34375 -1.5 3.34375 -2.09375 Z M 3.34375 -2.09375 "/>
</g>
<g id="glyph-0-8">
<path d="M 4.078125 -2.109375 C 4.078125 -0.648438 3.5625 0.078125 2.53125 0.078125 C 2.21875 0.078125 1.953125 0.0195312 1.734375 -0.09375 C 1.523438 -0.207031 1.359375 -0.394531 1.234375 -0.65625 L 1.21875 -0.65625 C 1.21875 -0.570312 1.210938 -0.445312 1.203125 -0.28125 C 1.191406 -0.113281 1.1875 -0.0195312 1.1875 0 L 0.515625 0 C 0.523438 -0.132812 0.53125 -0.421875 0.53125 -0.859375 L 0.53125 -5.734375 L 1.234375 -5.734375 L 1.234375 -4.109375 C 1.234375 -3.941406 1.226562 -3.742188 1.21875 -3.515625 L 1.234375 -3.515625 C 1.359375 -3.785156 1.523438 -3.976562 1.734375 -4.09375 C 1.953125 -4.207031 2.21875 -4.265625 2.53125 -4.265625 C 3.0625 -4.265625 3.453125 -4.082031 3.703125 -3.71875 C 3.953125 -3.363281 4.078125 -2.828125 4.078125 -2.109375 Z M 3.34375 -2.09375 C 3.34375 -2.675781 3.265625 -3.09375 3.109375 -3.34375 C 2.953125 -3.59375 2.703125 -3.71875 2.359375 -3.71875 C 1.960938 -3.71875 1.675781 -3.582031 1.5 -3.3125 C 1.320312 -3.050781 1.234375 -2.628906 1.234375 -2.046875 C 1.234375 -1.492188 1.316406 -1.085938 1.484375 -0.828125 C 1.660156 -0.566406 1.945312 -0.4375 2.34375 -0.4375 C 2.695312 -0.4375 2.953125 -0.566406 3.109375 -0.828125 C 3.265625 -1.085938 3.34375 -1.507812 3.34375 -2.09375 Z M 3.34375 -2.09375 "/>
</g>
<g id="glyph-0-9">
<path d="M 0.53125 0 L 0.53125 -5.734375 L 1.234375 -5.734375 L 1.234375 0 Z M 0.53125 0 "/>
</g>
<g id="glyph-0-10">
<path d="M 0.53125 -5.078125 L 0.53125 -5.734375 L 1.21875 -5.734375 L 1.21875 -5.078125 Z M 0.53125 0 L 0.53125 -4.1875 L 1.21875 -4.1875 L 1.21875 0 Z M 0.53125 0 "/>
</g>
<g id="glyph-0-11">
<path d="M 1.0625 -2.109375 C 1.0625 -1.554688 1.148438 -1.144531 1.328125 -0.875 C 1.503906 -0.601562 1.769531 -0.46875 2.125 -0.46875 C 2.363281 -0.46875 2.566406 -0.535156 2.734375 -0.671875 C 2.898438 -0.804688 3.003906 -1.015625 3.046875 -1.296875 L 3.75 -1.25 C 3.695312 -0.84375 3.523438 -0.519531 3.234375 -0.28125 C 2.941406 -0.0390625 2.578125 0.078125 2.140625 0.078125 C 1.554688 0.078125 1.109375 -0.101562 0.796875 -0.46875 C 0.492188 -0.84375 0.34375 -1.382812 0.34375 -2.09375 C 0.34375 -2.800781 0.492188 -3.335938 0.796875 -3.703125 C 1.109375 -4.078125 1.550781 -4.265625 2.125 -4.265625 C 2.550781 -4.265625 2.90625 -4.148438 3.1875 -3.921875 C 3.476562 -3.703125 3.660156 -3.398438 3.734375 -3.015625 L 3.015625 -2.953125 C 2.972656 -3.191406 2.878906 -3.378906 2.734375 -3.515625 C 2.585938 -3.648438 2.378906 -3.71875 2.109375 -3.71875 C 1.742188 -3.71875 1.476562 -3.59375 1.3125 -3.34375 C 1.144531 -3.101562 1.0625 -2.691406 1.0625 -2.109375 Z M 1.0625 -2.109375 "/>
</g>
<g id="glyph-0-12">
<path d="M 0.546875 0 L 0.546875 -3.203125 C 0.546875 -3.503906 0.539062 -3.832031 0.53125 -4.1875 L 1.1875 -4.1875 C 1.207031 -3.707031 1.21875 -3.421875 1.21875 -3.328125 L 1.234375 -3.328125 C 1.335938 -3.691406 1.460938 -3.9375 1.609375 -4.0625 C 1.753906 -4.195312 1.957031 -4.265625 2.21875 -4.265625 C 2.3125 -4.265625 2.40625 -4.25 2.5 -4.21875 L 2.5 -3.578125 C 2.414062 -3.609375 2.296875 -3.625 2.140625 -3.625 C 1.847656 -3.625 1.625 -3.5 1.46875 -3.25 C 1.320312 -3 1.25 -2.644531 1.25 -2.1875 L 1.25 0 Z M 0.546875 0 "/>
</g>
<g id="glyph-0-13">
<path d="M 2.375 0 L 1.546875 0 L 0.03125 -4.1875 L 0.765625 -4.1875 L 1.6875 -1.46875 C 1.71875 -1.363281 1.804688 -1.054688 1.953125 -0.546875 L 2.09375 -1 L 2.25 -1.453125 L 3.1875 -4.1875 L 3.9375 -4.1875 Z M 2.375 0 "/>
</g>
<g id="glyph-0-14">
<path d="M 0 0.078125 L 1.59375 -5.734375 L 2.203125 -5.734375 L 0.625 0.078125 Z M 0 0.078125 "/>
</g>
<g id="glyph-0-15">
<path d="M 3.1875 0 L 3.1875 -2.65625 C 3.1875 -2.925781 3.160156 -3.140625 3.109375 -3.296875 C 3.054688 -3.453125 2.96875 -3.5625 2.84375 -3.625 C 2.726562 -3.6875 2.554688 -3.71875 2.328125 -3.71875 C 1.992188 -3.71875 1.726562 -3.601562 1.53125 -3.375 C 1.34375 -3.144531 1.25 -2.828125 1.25 -2.421875 L 1.25 0 L 0.546875 0 L 0.546875 -3.296875 C 0.546875 -3.773438 0.539062 -4.070312 0.53125 -4.1875 L 1.1875 -4.1875 C 1.1875 -4.175781 1.1875 -4.140625 1.1875 -4.078125 C 1.1875 -4.023438 1.1875 -3.960938 1.1875 -3.890625 C 1.195312 -3.816406 1.207031 -3.675781 1.21875 -3.46875 C 1.382812 -3.757812 1.570312 -3.960938 1.78125 -4.078125 C 1.988281 -4.203125 2.25 -4.265625 2.5625 -4.265625 C 3.019531 -4.265625 3.351562 -4.148438 3.5625 -3.921875 C 3.78125 -3.691406 3.890625 -3.3125 3.890625 -2.78125 L 3.890625 0 Z M 3.1875 0 "/>
</g>
<g id="glyph-0-16">
<path d="M 2.140625 -0.03125 C 1.910156 0.03125 1.675781 0.0625 1.4375 0.0625 C 0.882812 0.0625 0.609375 -0.253906 0.609375 -0.890625 L 0.609375 -3.671875 L 0.125 -3.671875 L 0.125 -4.1875 L 0.625 -4.1875 L 0.828125 -5.125 L 1.296875 -5.125 L 1.296875 -4.1875 L 2.078125 -4.1875 L 2.078125 -3.671875 L 1.296875 -3.671875 L 1.296875 -1.03125 C 1.296875 -0.832031 1.328125 -0.691406 1.390625 -0.609375 C 1.460938 -0.523438 1.578125 -0.484375 1.734375 -0.484375 C 1.828125 -0.484375 1.960938 -0.503906 2.140625 -0.546875 Z M 2.140625 -0.03125 "/>
</g>
<g id="glyph-0-17">
<path d="M 0.65625 0 L 0.65625 -5.453125 L 1.390625 -5.453125 L 1.390625 -0.609375 L 4.140625 -0.609375 L 4.140625 0 Z M 0.65625 0 "/>
</g>
<g id="glyph-1-0">
<path d="M 0.796875 0 L 0.796875 -5.9375 L 1.609375 -5.9375 L 1.609375 0 Z M 0.796875 0 "/>
</g>
<g id="glyph-1-1">
<path d="M 3.484375 0 L 3.484375 -2.890625 C 3.484375 -3.191406 3.453125 -3.425781 3.390625 -3.59375 C 3.328125 -3.757812 3.234375 -3.878906 3.109375 -3.953125 C 2.984375 -4.023438 2.796875 -4.0625 2.546875 -4.0625 C 2.171875 -4.0625 1.878906 -3.9375 1.671875 -3.6875 C 1.460938 -3.4375 1.359375 -3.085938 1.359375 -2.640625 L 1.359375 0 L 0.59375 0 L 0.59375 -3.59375 C 0.59375 -4.125 0.585938 -4.445312 0.578125 -4.5625 L 1.296875 -4.5625 C 1.296875 -4.550781 1.296875 -4.515625 1.296875 -4.453125 C 1.296875 -4.390625 1.296875 -4.316406 1.296875 -4.234375 C 1.304688 -4.160156 1.316406 -4.007812 1.328125 -3.78125 L 1.34375 -3.78125 C 1.507812 -4.09375 1.707031 -4.316406 1.9375 -4.453125 C 2.164062 -4.585938 2.453125 -4.65625 2.796875 -4.65625 C 3.296875 -4.65625 3.660156 -4.53125 3.890625 -4.28125 C 4.128906 -4.03125 4.25 -3.617188 4.25 -3.046875 L 4.25 0 Z M 3.484375 0 "/>
</g>
<g id="glyph-1-2">
<path d="M 2.34375 -0.03125 C 2.09375 0.03125 1.832031 0.0625 1.5625 0.0625 C 0.957031 0.0625 0.65625 -0.28125 0.65625 -0.96875 L 0.65625 -4.015625 L 0.125 -4.015625 L 0.125 -4.5625 L 0.6875 -4.5625 L 0.90625 -5.59375 L 1.421875 -5.59375 L 1.421875 -4.5625 L 2.265625 -4.5625 L 2.265625 -4.015625 L 1.421875 -4.015625 L 1.421875 -1.125 C 1.421875 -0.90625 1.453125 -0.75 1.515625 -0.65625 C 1.585938 -0.570312 1.71875 -0.53125 1.90625 -0.53125 C 2 -0.53125 2.144531 -0.550781 2.34375 -0.59375 Z M 2.34375 -0.03125 "/>
</g>
<g id="glyph-1-3">
<path d="M 1.171875 -2.125 C 1.171875 -1.601562 1.273438 -1.195312 1.484375 -0.90625 C 1.703125 -0.625 2.019531 -0.484375 2.4375 -0.484375 C 2.769531 -0.484375 3.035156 -0.546875 3.234375 -0.671875 C 3.429688 -0.804688 3.5625 -0.976562 3.625 -1.1875 L 4.296875 -1 C 4.023438 -0.28125 3.40625 0.078125 2.4375 0.078125 C 1.757812 0.078125 1.242188 -0.117188 0.890625 -0.515625 C 0.535156 -0.921875 0.359375 -1.519531 0.359375 -2.3125 C 0.359375 -3.0625 0.535156 -3.640625 0.890625 -4.046875 C 1.242188 -4.453125 1.75 -4.65625 2.40625 -4.65625 C 3.75 -4.65625 4.421875 -3.84375 4.421875 -2.21875 L 4.421875 -2.125 Z M 3.640625 -2.703125 C 3.597656 -3.179688 3.472656 -3.53125 3.265625 -3.75 C 3.066406 -3.976562 2.773438 -4.09375 2.390625 -4.09375 C 2.023438 -4.09375 1.734375 -3.96875 1.515625 -3.71875 C 1.304688 -3.46875 1.191406 -3.128906 1.171875 -2.703125 Z M 3.640625 -2.703125 "/>
</g>
<g id="glyph-1-4">
<path d="M 0.59375 0 L 0.59375 -3.5 C 0.59375 -3.820312 0.585938 -4.175781 0.578125 -4.5625 L 1.296875 -4.5625 C 1.316406 -4.039062 1.328125 -3.726562 1.328125 -3.625 L 1.34375 -3.625 C 1.457031 -4.019531 1.59375 -4.289062 1.75 -4.4375 C 1.914062 -4.582031 2.140625 -4.65625 2.421875 -4.65625 C 2.523438 -4.65625 2.628906 -4.640625 2.734375 -4.609375 L 2.734375 -3.90625 C 2.628906 -3.9375 2.492188 -3.953125 2.328125 -3.953125 C 2.015625 -3.953125 1.773438 -3.816406 1.609375 -3.546875 C 1.441406 -3.273438 1.359375 -2.882812 1.359375 -2.375 L 1.359375 0 Z M 0.59375 0 "/>
</g>
<g id="glyph-1-5">
<path d="M 5.359375 -1.640625 C 5.359375 -1.085938 5.144531 -0.660156 4.71875 -0.359375 C 4.289062 -0.0664062 3.6875 0.078125 2.90625 0.078125 C 1.457031 0.078125 0.617188 -0.421875 0.390625 -1.421875 L 1.171875 -1.578125 C 1.265625 -1.222656 1.457031 -0.960938 1.75 -0.796875 C 2.039062 -0.628906 2.4375 -0.546875 2.9375 -0.546875 C 3.457031 -0.546875 3.859375 -0.632812 4.140625 -0.8125 C 4.421875 -0.988281 4.5625 -1.25 4.5625 -1.59375 C 4.5625 -1.789062 4.515625 -1.945312 4.421875 -2.0625 C 4.335938 -2.1875 4.21875 -2.285156 4.0625 -2.359375 C 3.90625 -2.441406 3.710938 -2.507812 3.484375 -2.5625 C 3.265625 -2.625 3.019531 -2.6875 2.75 -2.75 C 2.28125 -2.851562 1.921875 -2.953125 1.671875 -3.046875 C 1.429688 -3.148438 1.238281 -3.265625 1.09375 -3.390625 C 0.957031 -3.523438 0.851562 -3.675781 0.78125 -3.84375 C 0.707031 -4.019531 0.671875 -4.21875 0.671875 -4.4375 C 0.671875 -4.945312 0.863281 -5.335938 1.25 -5.609375 C 1.644531 -5.890625 2.203125 -6.03125 2.921875 -6.03125 C 3.597656 -6.03125 4.113281 -5.925781 4.46875 -5.71875 C 4.832031 -5.507812 5.085938 -5.160156 5.234375 -4.671875 L 4.4375 -4.53125 C 4.34375 -4.84375 4.171875 -5.066406 3.921875 -5.203125 C 3.679688 -5.347656 3.347656 -5.421875 2.921875 -5.421875 C 2.441406 -5.421875 2.078125 -5.34375 1.828125 -5.1875 C 1.578125 -5.03125 1.453125 -4.796875 1.453125 -4.484375 C 1.453125 -4.296875 1.5 -4.144531 1.59375 -4.03125 C 1.695312 -3.914062 1.835938 -3.816406 2.015625 -3.734375 C 2.203125 -3.648438 2.566406 -3.546875 3.109375 -3.421875 C 3.296875 -3.378906 3.476562 -3.335938 3.65625 -3.296875 C 3.84375 -3.253906 4.019531 -3.203125 4.1875 -3.140625 C 4.351562 -3.078125 4.503906 -3.003906 4.640625 -2.921875 C 4.785156 -2.835938 4.910156 -2.738281 5.015625 -2.625 C 5.128906 -2.507812 5.210938 -2.367188 5.265625 -2.203125 C 5.328125 -2.046875 5.359375 -1.859375 5.359375 -1.640625 Z M 5.359375 -1.640625 "/>
</g>
<g id="glyph-1-6">
<path d="M 2.59375 0 L 1.6875 0 L 0.03125 -4.5625 L 0.84375 -4.5625 L 1.84375 -1.59375 C 1.882812 -1.476562 1.984375 -1.144531 2.140625 -0.59375 L 2.28125 -1.09375 L 2.453125 -1.59375 L 3.484375 -4.5625 L 4.296875 -4.5625 Z M 2.59375 0 "/>
</g>
<g id="glyph-1-7">
<path d="M 1.328125 -4.5625 L 1.328125 -1.671875 C 1.328125 -1.367188 1.351562 -1.132812 1.40625 -0.96875 C 1.46875 -0.800781 1.5625 -0.679688 1.6875 -0.609375 C 1.820312 -0.535156 2.015625 -0.5 2.265625 -0.5 C 2.628906 -0.5 2.914062 -0.625 3.125 -0.875 C 3.34375 -1.125 3.453125 -1.472656 3.453125 -1.921875 L 3.453125 -4.5625 L 4.203125 -4.5625 L 4.203125 -0.96875 C 4.203125 -0.4375 4.210938 -0.113281 4.234375 0 L 3.515625 0 C 3.515625 -0.0078125 3.507812 -0.046875 3.5 -0.109375 C 3.5 -0.171875 3.492188 -0.242188 3.484375 -0.328125 C 3.484375 -0.410156 3.484375 -0.5625 3.484375 -0.78125 L 3.46875 -0.78125 C 3.289062 -0.46875 3.085938 -0.242188 2.859375 -0.109375 C 2.628906 0.015625 2.347656 0.078125 2.015625 0.078125 C 1.503906 0.078125 1.132812 -0.0390625 0.90625 -0.28125 C 0.675781 -0.53125 0.5625 -0.941406 0.5625 -1.515625 L 0.5625 -4.5625 Z M 1.328125 -4.5625 "/>
</g>
<g id="glyph-1-8">
</g>
<g id="glyph-2-0">
<path d="M 2.9375 -4.078125 L 2.34375 -4.078125 L 2.609375 -5.9375 L 3.390625 -5.9375 Z M 1.390625 -4.078125 L 0.78125 -4.078125 L 1.0625 -5.9375 L 1.828125 -5.9375 Z M 1.390625 -4.078125 "/>
</g>
<g id="glyph-2-1">
<path d="M 2.34375 0.078125 C 1.988281 0.078125 1.703125 0.00390625 1.484375 -0.140625 C 1.273438 -0.285156 1.125 -0.488281 1.03125 -0.75 L 1.015625 -0.75 C 1.015625 -0.71875 1 -0.625 0.96875 -0.46875 C 0.945312 -0.320312 0.804688 0.429688 0.546875 1.796875 L -0.21875 1.796875 L 0.828125 -3.625 C 0.898438 -3.9375 0.953125 -4.25 0.984375 -4.5625 L 1.6875 -4.5625 C 1.6875 -4.488281 1.675781 -4.375 1.65625 -4.21875 C 1.632812 -4.0625 1.617188 -3.953125 1.609375 -3.890625 L 1.625 -3.890625 C 1.832031 -4.148438 2.050781 -4.34375 2.28125 -4.46875 C 2.507812 -4.59375 2.789062 -4.65625 3.125 -4.65625 C 3.5625 -4.65625 3.90625 -4.519531 4.15625 -4.25 C 4.40625 -3.988281 4.53125 -3.625 4.53125 -3.15625 C 4.53125 -2.582031 4.441406 -2.023438 4.265625 -1.484375 C 4.097656 -0.953125 3.851562 -0.554688 3.53125 -0.296875 C 3.21875 -0.046875 2.820312 0.078125 2.34375 0.078125 Z M 2.90625 -4.0625 C 2.625 -4.0625 2.382812 -4.003906 2.1875 -3.890625 C 1.988281 -3.773438 1.820312 -3.601562 1.6875 -3.375 C 1.550781 -3.144531 1.441406 -2.859375 1.359375 -2.515625 C 1.285156 -2.171875 1.25 -1.863281 1.25 -1.59375 C 1.25 -1.238281 1.335938 -0.960938 1.515625 -0.765625 C 1.691406 -0.578125 1.9375 -0.484375 2.25 -0.484375 C 2.601562 -0.484375 2.878906 -0.585938 3.078125 -0.796875 C 3.285156 -1.003906 3.445312 -1.335938 3.5625 -1.796875 C 3.675781 -2.265625 3.734375 -2.671875 3.734375 -3.015625 C 3.734375 -3.367188 3.664062 -3.628906 3.53125 -3.796875 C 3.40625 -3.972656 3.195312 -4.0625 2.90625 -4.0625 Z M 2.90625 -4.0625 "/>
</g>
<g id="glyph-2-2">
<path d="M 3.03125 -3.953125 C 2.90625 -3.992188 2.78125 -4.015625 2.65625 -4.015625 C 2.351562 -4.015625 2.082031 -3.859375 1.84375 -3.546875 C 1.613281 -3.234375 1.453125 -2.84375 1.359375 -2.375 L 0.90625 0 L 0.140625 0 L 0.828125 -3.5 L 0.9375 -4.078125 L 1.015625 -4.5625 L 1.71875 -4.5625 L 1.578125 -3.625 L 1.59375 -3.625 C 1.78125 -4 1.960938 -4.265625 2.140625 -4.421875 C 2.316406 -4.578125 2.523438 -4.65625 2.765625 -4.65625 C 2.898438 -4.65625 3.035156 -4.632812 3.171875 -4.59375 Z M 3.03125 -3.953125 "/>
</g>
<g id="glyph-2-3">
<path d="M 4.53125 -2.875 C 4.53125 -2.507812 4.472656 -2.128906 4.359375 -1.734375 C 4.242188 -1.335938 4.082031 -1.003906 3.875 -0.734375 C 3.664062 -0.460938 3.410156 -0.257812 3.109375 -0.125 C 2.804688 0.0078125 2.460938 0.078125 2.078125 0.078125 C 1.523438 0.078125 1.085938 -0.0820312 0.765625 -0.40625 C 0.441406 -0.738281 0.28125 -1.191406 0.28125 -1.765625 C 0.289062 -2.335938 0.394531 -2.847656 0.59375 -3.296875 C 0.789062 -3.742188 1.0625 -4.078125 1.40625 -4.296875 C 1.757812 -4.523438 2.191406 -4.640625 2.703125 -4.640625 C 3.296875 -4.640625 3.75 -4.484375 4.0625 -4.171875 C 4.375 -3.867188 4.53125 -3.4375 4.53125 -2.875 Z M 3.75 -2.875 C 3.75 -3.6875 3.398438 -4.09375 2.703125 -4.09375 C 2.316406 -4.09375 2.007812 -3.992188 1.78125 -3.796875 C 1.550781 -3.597656 1.375 -3.300781 1.25 -2.90625 C 1.125 -2.507812 1.0625 -2.125 1.0625 -1.75 C 1.0625 -1.332031 1.148438 -1.015625 1.328125 -0.796875 C 1.515625 -0.585938 1.78125 -0.484375 2.125 -0.484375 C 2.40625 -0.484375 2.632812 -0.53125 2.8125 -0.625 C 2.988281 -0.71875 3.140625 -0.867188 3.265625 -1.078125 C 3.398438 -1.285156 3.507812 -1.546875 3.59375 -1.859375 C 3.675781 -2.179688 3.726562 -2.519531 3.75 -2.875 Z M 3.75 -2.875 "/>
</g>
<g id="glyph-2-4">
<path d="M 2.984375 0 L 2.09375 -1.875 L 0.5 0 L -0.34375 0 L 1.734375 -2.34375 L 0.609375 -4.5625 L 1.40625 -4.5625 L 2.234375 -2.78125 L 3.703125 -4.5625 L 4.578125 -4.5625 L 2.59375 -2.359375 L 3.78125 0 Z M 2.984375 0 "/>
</g>
<g id="glyph-2-5">
<path d="M 0.0625 1.796875 C -0.132812 1.796875 -0.316406 1.773438 -0.484375 1.734375 L -0.359375 1.171875 C -0.234375 1.191406 -0.125 1.203125 -0.03125 1.203125 C 0.226562 1.203125 0.460938 1.109375 0.671875 0.921875 C 0.878906 0.742188 1.082031 0.484375 1.28125 0.140625 L 1.390625 -0.046875 L 0.46875 -4.5625 L 1.25 -4.5625 L 1.71875 -2.046875 C 1.757812 -1.816406 1.796875 -1.570312 1.828125 -1.3125 C 1.867188 -1.0625 1.890625 -0.898438 1.890625 -0.828125 C 1.921875 -0.890625 1.957031 -0.960938 2 -1.046875 C 2.050781 -1.140625 2.691406 -2.3125 3.921875 -4.5625 L 4.75 -4.5625 L 2.109375 0 C 1.796875 0.539062 1.546875 0.921875 1.359375 1.140625 C 1.171875 1.359375 0.972656 1.519531 0.765625 1.625 C 0.554688 1.738281 0.320312 1.796875 0.0625 1.796875 Z M 0.0625 1.796875 "/>
</g>
<g id="glyph-2-6">
<path d="M 3.90625 0.046875 C 3.644531 0.046875 3.453125 -0.00390625 3.328125 -0.109375 C 3.210938 -0.222656 3.15625 -0.390625 3.15625 -0.609375 L 3.1875 -0.875 L 3.15625 -0.875 C 2.925781 -0.519531 2.679688 -0.269531 2.421875 -0.125 C 2.171875 0.0078125 1.867188 0.078125 1.515625 0.078125 C 1.128906 0.078125 0.8125 -0.0351562 0.5625 -0.265625 C 0.3125 -0.503906 0.1875 -0.804688 0.1875 -1.171875 C 0.1875 -1.691406 0.375 -2.082031 0.75 -2.34375 C 1.125 -2.613281 1.71875 -2.753906 2.53125 -2.765625 L 3.515625 -2.78125 C 3.566406 -3.0625 3.59375 -3.242188 3.59375 -3.328125 C 3.59375 -3.578125 3.515625 -3.765625 3.359375 -3.890625 C 3.210938 -4.015625 3.007812 -4.078125 2.75 -4.078125 C 2.414062 -4.078125 2.160156 -4.015625 1.984375 -3.890625 C 1.816406 -3.773438 1.695312 -3.59375 1.625 -3.34375 L 0.875 -3.46875 C 1 -3.882812 1.21875 -4.1875 1.53125 -4.375 C 1.84375 -4.5625 2.265625 -4.65625 2.796875 -4.65625 C 3.273438 -4.65625 3.65625 -4.539062 3.9375 -4.3125 C 4.21875 -4.082031 4.359375 -3.78125 4.359375 -3.40625 C 4.359375 -3.226562 4.332031 -3.007812 4.28125 -2.75 L 3.96875 -1.140625 C 3.9375 -1.003906 3.921875 -0.882812 3.921875 -0.78125 C 3.921875 -0.570312 4.03125 -0.46875 4.25 -0.46875 C 4.332031 -0.46875 4.421875 -0.476562 4.515625 -0.5 L 4.453125 -0.03125 C 4.265625 0.0195312 4.082031 0.046875 3.90625 0.046875 Z M 3.40625 -2.265625 L 2.578125 -2.25 C 2.242188 -2.238281 1.976562 -2.207031 1.78125 -2.15625 C 1.59375 -2.101562 1.445312 -2.035156 1.34375 -1.953125 C 1.238281 -1.867188 1.15625 -1.765625 1.09375 -1.640625 C 1.03125 -1.523438 1 -1.378906 1 -1.203125 C 1 -0.992188 1.066406 -0.820312 1.203125 -0.6875 C 1.335938 -0.5625 1.515625 -0.5 1.734375 -0.5 C 2.003906 -0.5 2.25 -0.554688 2.46875 -0.671875 C 2.6875 -0.785156 2.867188 -0.9375 3.015625 -1.125 C 3.160156 -1.3125 3.253906 -1.515625 3.296875 -1.734375 Z M 3.40625 -2.265625 "/>
</g>
<g id="glyph-2-7">
<path d="M 0.140625 0 L 1.359375 -6.265625 L 2.109375 -6.265625 L 0.890625 0 Z M 0.140625 0 "/>
</g>
<g id="glyph-2-8">
<path d="M 1.203125 -5.53125 L 1.359375 -6.265625 L 2.109375 -6.265625 L 1.96875 -5.53125 Z M 0.140625 0 L 1.03125 -4.5625 L 1.78125 -4.5625 L 0.890625 0 Z M 0.140625 0 "/>
</g>
<g id="glyph-2-9">
<path d="M 1.984375 -0.515625 C 2.554688 -0.515625 2.960938 -0.835938 3.203125 -1.484375 L 3.859375 -1.28125 C 3.515625 -0.375 2.882812 0.078125 1.96875 0.078125 C 1.425781 0.078125 1.007812 -0.0703125 0.71875 -0.375 C 0.425781 -0.675781 0.28125 -1.109375 0.28125 -1.671875 C 0.28125 -2.234375 0.378906 -2.753906 0.578125 -3.234375 C 0.785156 -3.722656 1.054688 -4.082031 1.390625 -4.3125 C 1.734375 -4.539062 2.148438 -4.65625 2.640625 -4.65625 C 3.109375 -4.65625 3.484375 -4.535156 3.765625 -4.296875 C 4.046875 -4.054688 4.195312 -3.726562 4.21875 -3.3125 L 3.46875 -3.203125 C 3.457031 -3.472656 3.375 -3.679688 3.21875 -3.828125 C 3.070312 -3.972656 2.867188 -4.046875 2.609375 -4.046875 C 2.253906 -4.046875 1.96875 -3.953125 1.75 -3.765625 C 1.53125 -3.578125 1.359375 -3.273438 1.234375 -2.859375 C 1.117188 -2.453125 1.0625 -2.046875 1.0625 -1.640625 C 1.0625 -0.890625 1.367188 -0.515625 1.984375 -0.515625 Z M 1.984375 -0.515625 "/>
</g>
<g id="glyph-2-10">
<path d="M 1.15625 0.078125 C 0.914062 0.078125 0.726562 0.0078125 0.59375 -0.125 C 0.457031 -0.269531 0.390625 -0.460938 0.390625 -0.703125 C 0.390625 -0.859375 0.410156 -1.039062 0.453125 -1.25 L 0.984375 -4.015625 L 0.453125 -4.015625 L 0.5625 -4.5625 L 1.109375 -4.5625 L 1.546875 -5.59375 L 2.046875 -5.59375 L 1.859375 -4.5625 L 2.703125 -4.5625 L 2.59375 -4.015625 L 1.75 -4.015625 L 1.21875 -1.296875 C 1.1875 -1.117188 1.171875 -0.984375 1.171875 -0.890625 C 1.171875 -0.640625 1.296875 -0.515625 1.546875 -0.515625 C 1.660156 -0.515625 1.800781 -0.535156 1.96875 -0.578125 L 1.890625 -0.015625 C 1.609375 0.046875 1.363281 0.078125 1.15625 0.078125 Z M 1.15625 0.078125 "/>
</g>
<g id="glyph-2-11">
<path d="M 1.828125 -4.015625 L 1.046875 0 L 0.296875 0 L 1.078125 -4.015625 L 0.4375 -4.015625 L 0.546875 -4.5625 L 1.1875 -4.5625 L 1.28125 -5.078125 C 1.34375 -5.390625 1.425781 -5.625 1.53125 -5.78125 C 1.632812 -5.9375 1.773438 -6.054688 1.953125 -6.140625 C 2.128906 -6.222656 2.351562 -6.265625 2.625 -6.265625 C 2.832031 -6.265625 3.003906 -6.242188 3.140625 -6.203125 L 3.03125 -5.625 L 2.84375 -5.65625 L 2.65625 -5.671875 C 2.476562 -5.671875 2.34375 -5.625 2.25 -5.53125 C 2.15625 -5.4375 2.078125 -5.25 2.015625 -4.96875 L 1.9375 -4.5625 L 2.828125 -4.5625 L 2.71875 -4.015625 Z M 1.828125 -4.015625 "/>
</g>
</g>
</defs>
<path fill-rule="nonzero" fill="rgb(72.158813%, 32.939148%, 31.369019%)" fill-opacity="1" d="M 1.800781 96.886719 L 8.28125 96.894531 L 8.277344 99.054688 L 1.796875 99.042969 M 14.757812 96.90625 L 21.238281 96.914062 L 21.234375 99.074219 L 14.757812 99.0625 M 27.71875 96.925781 L 34.195312 96.933594 L 34.195312 99.09375 L 27.714844 99.082031 M 40.675781 96.945312 L 47.15625 96.953125 L 47.152344 99.113281 L 40.671875 99.101562 M 53.632812 96.960938 L 60.113281 96.972656 L 60.109375 99.132812 L 53.632812 99.121094 M 66.59375 96.980469 L 73.070312 96.992188 L 73.070312 99.152344 L 66.589844 99.140625 M 79.550781 97 L 86.03125 97.011719 L 86.027344 99.171875 L 79.546875 99.160156 M 92.507812 97.019531 L 98.988281 97.03125 L 98.984375 99.191406 L 92.507812 99.179688 M 105.46875 97.039062 L 111.945312 97.050781 L 111.945312 99.210938 L 105.464844 99.199219 M 118.425781 97.058594 L 124.90625 97.070312 L 124.902344 99.230469 L 118.421875 99.21875 M 131.382812 97.078125 L 137.863281 97.089844 L 137.859375 99.25 L 131.382812 99.238281 M 144.34375 97.097656 L 150.820312 97.109375 L 150.820312 99.269531 L 144.339844 99.257812 M 157.300781 97.117188 L 163.78125 97.128906 L 163.777344 99.289062 L 157.296875 99.277344 M 170.257812 97.136719 L 176.738281 97.148438 L 176.734375 99.308594 L 170.257812 99.296875 M 183.21875 97.15625 L 189.695312 97.167969 L 189.695312 99.328125 L 183.214844 99.316406 M 196.175781 97.175781 L 202.65625 97.1875 L 202.652344 99.347656 L 196.171875 99.335938 "/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="154.061725" y="91.429154"/>
<use xlink:href="#glyph-0-1" x="159.780617" y="91.429154"/>
<use xlink:href="#glyph-0-2" x="164.184821" y="91.429154"/>
<use xlink:href="#glyph-0-3" x="168.144351" y="91.429154"/>
<use xlink:href="#glyph-0-4" x="172.548555" y="91.429154"/>
<use xlink:href="#glyph-0-5" x="176.952759" y="91.429154"/>
<use xlink:href="#glyph-0-6" x="181.356963" y="91.429154"/>
<use xlink:href="#glyph-0-7" x="183.557132" y="91.429154"/>
<use xlink:href="#glyph-0-5" x="187.961336" y="91.429154"/>
<use xlink:href="#glyph-0-8" x="192.36554" y="91.429154"/>
<use xlink:href="#glyph-0-9" x="196.769744" y="91.429154"/>
<use xlink:href="#glyph-0-10" x="198.529106" y="91.429154"/>
<use xlink:href="#glyph-0-11" x="200.288468" y="91.429154"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-0" x="154.061725" y="110.146934"/>
<use xlink:href="#glyph-0-1" x="159.780617" y="110.146934"/>
<use xlink:href="#glyph-0-2" x="164.184821" y="110.146934"/>
<use xlink:href="#glyph-0-3" x="168.144351" y="110.146934"/>
<use xlink:href="#glyph-0-4" x="172.548555" y="110.146934"/>
<use xlink:href="#glyph-0-5" x="176.952759" y="110.146934"/>
<use xlink:href="#glyph-0-6" x="181.356963" y="110.146934"/>
<use xlink:href="#glyph-0-7" x="183.557132" y="110.146934"/>
<use xlink:href="#glyph-0-12" x="187.961336" y="110.146934"/>
<use xlink:href="#glyph-0-10" x="190.598445" y="110.146934"/>
<use xlink:href="#glyph-0-13" x="192.357807" y="110.146934"/>
<use xlink:href="#glyph-0-1" x="196.317337" y="110.146934"/>
<use xlink:href="#glyph-0-6" x="200.721541" y="110.146934"/>
<use xlink:href="#glyph-0-14" x="202.92171" y="110.146934"/>
<use xlink:href="#glyph-0-6" x="205.121879" y="110.146934"/>
<use xlink:href="#glyph-0-10" x="207.322047" y="110.146934"/>
<use xlink:href="#glyph-0-15" x="209.081409" y="110.146934"/>
<use xlink:href="#glyph-0-16" x="213.485613" y="110.146934"/>
<use xlink:href="#glyph-0-3" x="215.685782" y="110.146934"/>
<use xlink:href="#glyph-0-12" x="220.089986" y="110.146934"/>
<use xlink:href="#glyph-0-15" x="222.727095" y="110.146934"/>
<use xlink:href="#glyph-0-3" x="227.131299" y="110.146934"/>
</g>
<path fill="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 141.9988 69.121586 L 141.9988 102.88244 " transform="matrix(0.719907, 0, 0, 0.719907, 0.359954, 0.359954)"/>
<path fill="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 141.9988 62.121988 L 145.498599 69.121586 L 138.499001 69.121586 Z M 141.9988 62.121988 " transform="matrix(0.719907, 0, 0, 0.719907, 0.359954, 0.359954)"/>
<path fill="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 141.9988 109.882038 L 138.499001 102.88244 L 145.498599 102.88244 Z M 141.9988 109.882038 " transform="matrix(0.719907, 0, 0, 0.719907, 0.359954, 0.359954)"/>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 111.998196 16.000604 C 87.998798 16.000604 81.997592 30.998193 101.200366 33.998796 C 81.997592 40.602293 103.598678 54.997591 119.198558 49.001811 C 130.001814 60.998797 165.998198 60.998797 178.00061 49.001811 C 202.000008 49.001811 202.000008 36.999399 187.002419 30.998193 C 202.000008 19.001207 178.00061 6.998795 157.001815 13.000001 C 141.9988 3.998191 117.999402 3.998191 111.998196 16.000604 Z M 111.998196 16.000604 " transform="matrix(0.719907, 0, 0, 0.719907, 0.359954, 0.359954)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-0" x="87.570862" y="25.197011"/>
<use xlink:href="#glyph-1-1" x="89.971046" y="25.197011"/>
<use xlink:href="#glyph-1-2" x="94.775632" y="25.197011"/>
<use xlink:href="#glyph-1-3" x="97.175816" y="25.197011"/>
<use xlink:href="#glyph-1-4" x="101.980403" y="25.197011"/>
<use xlink:href="#glyph-1-1" x="104.857249" y="25.197011"/>
<use xlink:href="#glyph-1-3" x="109.661835" y="25.197011"/>
<use xlink:href="#glyph-1-2" x="114.466422" y="25.197011"/>
</g>
<path fill="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 141.9988 169.118174 L 141.9988 202.879028 " transform="matrix(0.719907, 0, 0, 0.719907, 0.359954, 0.359954)"/>
<path fill="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 141.9988 162.118576 L 145.498599 169.118174 L 138.499001 169.118174 Z M 141.9988 162.118576 " transform="matrix(0.719907, 0, 0, 0.719907, 0.359954, 0.359954)"/>
<path fill="none" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 141.9988 209.878626 L 138.499001 202.879028 L 145.498599 202.879028 Z M 141.9988 209.878626 " transform="matrix(0.719907, 0, 0, 0.719907, 0.359954, 0.359954)"/>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 110.148438 132.464844 L 181.417969 132.464844 L 181.417969 141.824219 L 110.148438 141.824219 Z M 110.148438 132.464844 "/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-0-17" x="109.899463" y="139.663433"/>
<use xlink:href="#glyph-0-10" x="114.303668" y="139.663433"/>
<use xlink:href="#glyph-0-3" x="116.063029" y="139.663433"/>
<use xlink:href="#glyph-0-15" x="120.467233" y="139.663433"/>
<use xlink:href="#glyph-0-6" x="124.871437" y="139.663433"/>
<use xlink:href="#glyph-0-3" x="127.071606" y="139.663433"/>
<use xlink:href="#glyph-0-15" x="131.47581" y="139.663433"/>
<use xlink:href="#glyph-0-6" x="135.880014" y="139.663433"/>
<use xlink:href="#glyph-0-12" x="138.080183" y="139.663433"/>
<use xlink:href="#glyph-0-1" x="140.717292" y="139.663433"/>
<use xlink:href="#glyph-0-2" x="145.121496" y="139.663433"/>
<use xlink:href="#glyph-0-3" x="149.081026" y="139.663433"/>
<use xlink:href="#glyph-0-4" x="153.48523" y="139.663433"/>
<use xlink:href="#glyph-0-5" x="157.889435" y="139.663433"/>
<use xlink:href="#glyph-0-6" x="162.293639" y="139.663433"/>
<use xlink:href="#glyph-0-7" x="164.493807" y="139.663433"/>
<use xlink:href="#glyph-0-12" x="168.898011" y="139.663433"/>
<use xlink:href="#glyph-0-10" x="171.53512" y="139.663433"/>
<use xlink:href="#glyph-0-13" x="173.294482" y="139.663433"/>
<use xlink:href="#glyph-0-1" x="177.254012" y="139.663433"/>
</g>
<path fill-rule="nonzero" fill="rgb(85.488892%, 90.979004%, 98.81897%)" fill-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(42.349243%, 55.688477%, 74.899292%)" stroke-opacity="1" stroke-miterlimit="4" d="M 81.997592 110.999804 L 202.000008 110.999804 L 202.000008 161.00081 L 81.997592 161.00081 Z M 81.997592 110.999804 " transform="matrix(0.719907, 0, 0, 0.719907, 0.359954, 0.359954)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="72.261428" y="100.788044"/>
<use xlink:href="#glyph-1-3" x="78.023557" y="100.788044"/>
<use xlink:href="#glyph-1-4" x="82.828143" y="100.788044"/>
<use xlink:href="#glyph-1-6" x="85.70499" y="100.788044"/>
<use xlink:href="#glyph-1-3" x="90.024477" y="100.788044"/>
<use xlink:href="#glyph-1-7" x="94.829064" y="100.788044"/>
<use xlink:href="#glyph-1-4" x="99.63365" y="100.788044"/>
<use xlink:href="#glyph-1-8" x="102.510496" y="100.788044"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-0" x="104.916305" y="100.788044"/>
<use xlink:href="#glyph-2-1" x="107.982972" y="100.788044"/>
<use xlink:href="#glyph-2-2" x="112.787558" y="100.788044"/>
<use xlink:href="#glyph-2-3" x="115.664405" y="100.788044"/>
<use xlink:href="#glyph-2-4" x="120.468991" y="100.788044"/>
<use xlink:href="#glyph-2-5" x="124.788478" y="100.788044"/>
<use xlink:href="#glyph-2-0" x="129.107966" y="100.788044"/>
</g>
<path fill-rule="nonzero" fill="rgb(88.238525%, 83.529663%, 90.589905%)" fill-opacity="1" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke="rgb(58.81958%, 45.098877%, 65.098572%)" stroke-opacity="1" stroke-miterlimit="4" d="M 81.997592 211.001817 L 202.000008 211.001817 L 202.000008 260.997398 L 81.997592 260.997398 Z M 81.997592 211.001817 " transform="matrix(0.719907, 0, 0, 0.719907, 0.359954, 0.359954)"/>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-1-5" x="65.782197" y="172.779504"/>
<use xlink:href="#glyph-1-3" x="71.544326" y="172.779504"/>
<use xlink:href="#glyph-1-4" x="76.348912" y="172.779504"/>
<use xlink:href="#glyph-1-6" x="79.225758" y="172.779504"/>
<use xlink:href="#glyph-1-3" x="83.545246" y="172.779504"/>
<use xlink:href="#glyph-1-7" x="88.349832" y="172.779504"/>
<use xlink:href="#glyph-1-4" x="93.154418" y="172.779504"/>
<use xlink:href="#glyph-1-8" x="96.031265" y="172.779504"/>
</g>
<g fill="rgb(0%, 0%, 0%)" fill-opacity="1">
<use xlink:href="#glyph-2-0" x="98.437073" y="172.779504"/>
<use xlink:href="#glyph-2-6" x="101.503741" y="172.779504"/>
<use xlink:href="#glyph-2-1" x="106.308327" y="172.779504"/>
<use xlink:href="#glyph-2-1" x="111.112913" y="172.779504"/>
<use xlink:href="#glyph-2-7" x="115.9175" y="172.779504"/>
<use xlink:href="#glyph-2-8" x="117.836803" y="172.779504"/>
<use xlink:href="#glyph-2-9" x="119.756107" y="172.779504"/>
<use xlink:href="#glyph-2-6" x="124.075594" y="172.779504"/>
<use xlink:href="#glyph-2-10" x="128.880181" y="172.779504"/>
<use xlink:href="#glyph-2-8" x="131.280365" y="172.779504"/>
<use xlink:href="#glyph-2-11" x="133.199668" y="172.779504"/>
<use xlink:href="#glyph-2-0" x="135.599852" y="172.779504"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 40 KiB

@ -0,0 +1,203 @@
#+TITLE: TP1 - Cours de virtualisation avancée - /Proxmox/
#+OPTIONS: toc:nil date:nil author:nil
#+LATEX_CLASS: article
#+LATEX_CLASS_OPTIONS: [12pt,a4paper]
#+LATEX_HEADER: \usepackage[utf8]{inputenc}
#+LATEX_HEADER: \usepackage[inkscapelatex=false]{svg}
#+LATEX_HEADER: \usepackage[sfdefault]{AlegreyaSans}
#+LATEX_HEADER: \usepackage{multicol}
#+LATEX_HEADER: \usepackage{minted}
#+LATEX_HEADER: \usepackage{float}
#+LATEX_HEADER: \usepackage{tikz}
#+LATEX_HEADER: \usetikzlibrary{positioning}
#+LATEX_HEADER: \renewcommand\listingscaption{Exemple de code}
#+BEGIN_EXPORT latex
{\large{Lire l'intégralité du TP avant de commencer quoi que ce soit !}}
\newpage
#+END_EXPORT
L'objectif de ce TP est de découvrir l'environnement de virtualisation "/Proxmox/" en mettant en place vous même plusieurs machines type /*conteneurs*/ qui vont devoir communiquer ensemble.
Lors de ce TP, vous allez mettre en place des *conteneurs* (abrégés *CT*) plutôt que des machines virtuelles afin de gagner du temps.
Cependant, gardez bien en tête que *conteneurs* et *machines virtuelles* sont certes similaires mais très différents !
Dans l'environnement /Proxmox/, les gestions des conteneurs et des machines virtuelles sont très similaires et par conséquent, savoir manipuler l'un permet aussi de savoir comment manipuler l'autre.
* Travail à réaliser
#+drawio: "schema.drawio"
#+ATTR_LATEX: :width 6cm
[[file:./images/schema-0.svg]]
Votre objectif lors de ce TP va être de mettre en place l'architecture ci dessus.
Il va vous falloir mettre en place deux *conteneurs*, dont un sera connecté à internet et un second, qui communiquera avec le premier via un réseau privé.
Sur le premier conteneur, il vous faudra installer et configurer le serveur /Nginx/ qui fera office de /proxy/ /HTTP/ pour permettre l'accès au site /web/ hébergé sur le second conteneur.
\medskip
Au début de la séance de TP, j'attribuerai à chacun·es de vous trois adresses /IP/ que vous devrez configurer sur les machines, qui seront ensuite nommées "IP publique proxy", "IP privée proxy" et "IP application".
N'oubliez pas de les noter ;)
\medskip
L'adresse de l'interface /web/ de l'instance /Proxmox/ que vous utiliserez est disponible ici: [[https://pve.virtiut.online/][\url{https://pve.virtiut.online/}]].
Dans l'écran de connexion, veillez à ce que le champ /"Realm"/ soit sur /"Proxmox VE authentication server"/.
Aussi, une alerte quant à la licence de /Proxmox/ peut s'afficher.
Si tel est le cas, cliquez sur /"Ok"/ et poursuivez.
\medskip
Pour vous y connecter, utilisez comme mot de passe et comme utilisateur votre nom et prénom, le tout attaché et sans accents, tirets ou espaces.
\medskip
Par exemple, je mappelle /"VAN ESPEN Évrard"/, j'utiliserai donc =vanespenevrard=.
\medskip
Si tout a été réalisé correctement, la page /web/ présente dans le serveur "application" devrait être accessible à l'adresse =<votre identifiant>.pve.virtiut.online=.
* Votre mission en étapes
- Vous devrez créer les deux machines, avec pour chacune un cœur /CPU/ et 512MB de mémoire vive;
- Vous devrez ensuite configurer les machines pour permettre la communication entre elles;
- Vous devrez enfin installer /sur chaque conteneur/ le paquet /nginx/ (veillez bien à le (re)démarrer à chaque modification de sa configuration (=systemd=)), puisqu'il sera utilisé une fois comme serveur /web/, et une fois comme /reverse proxy/. Sur quel conteneur tourne chacun des /nginx/ ? ;
- Éditez le fichier =/var/www/html/index.nginx-debian.html= en mettant votre nom dans la page.
* Champs à configurer
Lors de la création du conteneur, voici les champs que vous aurez à configurer.
Les autres champs que vous rencontrerez sont à laisser à leur valeur défaut.
** Onglet /"General"/
- /"Hostname"/
- /"Password"/ et /"Confirm password"/ -> ce sera le mot de passe de l'utilisateur =root= dans le conteneur (5 caractères minimum)
- /"Resource pool"/ -> sélectionnez la /pool/ à votre nom
** Onglet /"Template"/
- /"Template"/
** Onglet /"Disk"/
- /"Disk size"/ -> mettre =1GiB=
** Onglet /"CPU"/
- /"Cores"/
** Onglet /"Memory"/
- /"Memory"/
** Onglet /"Network"/
- /"Bridge"/
- /"IPv4/CIDR"/
- /"Gateway"/ -> ici mettre =192.168.1.1= ou =192.168.10.1= selon l'ip
* Notes et astuces
- N'oubliez pas, la machine /"proxy"/ doit avoir deux interfaces réseau, une pour le réseau public et une pour le réseau privé;
- Dans /Proxmox/, les conteneurs sont souvent nommés =CT=;
- Lors de la création du conteneur, vous n'avez pas à vous préoccuper de chaque champ de l'interface. Voir plus bas la liste des champs que vous devrez configurer;
- La machine /"proxy"/ doit utiliser l'interface =vmbr0= et avoir comme adresse /IP/ l'adresse "IP publique proxy" ainsi que l'interface =vmbr1= et avoir comme adresse /IP/ l'adresse "IP privée proxy";
- La machine /"application"/ devra utiliser l'interface =vmbr1= et avoir comme adresse /IP/ l'adresse "IP application";
- Le fichier de configuration de /nginx/ se situe dans le répertoire =/etc/nginx/site-enabled/= et se nomme =default=;
- Voici un fichier de configuration pour /nginx/ qui permet de l'utiliser en serveur /proxy/ comme demandé (replacez le contenu actuel du fichier):
#+BEGIN_EXAMPLE
server {
listen 80;
server_name <votre identifiant proxmox>.pve.virtuiut.online;
location / {
proxy_pass http://<adresse IP application>:80;
}
}
#+END_EXAMPLE
- Vous n'avez pas besoin de modifier la configuration de /nginx/ sur la machine "applicatif", par contre veilliez bien à le démarrer (=systemd=). Il sera accessible sur le port =80=.
- Les serveurs /nginx/ vont-ils démarrer au /boot/ du conteneur ?
\newpage
* Adresses /IP/ à utiliser
| Groupe | Nom | IP publique proxy | IP privée proxy | IP application |
|-------------+----------------------+-------------------+------------------+------------------|
| PM 1 | ANDRÉ Eloan | =192.168.1.2= | =192.168.10.2= | =192.168.10.3= |
| PM 1 | BALLANDRAS Pierre | =192.168.1.3= | =192.168.10.4= | =192.168.10.5= |
| PM 1 | BOILEAU Nathan | =192.168.1.4= | =192.168.10.6= | =192.168.10.7= |
| PM 1 | BOUDOUL Anna | =192.168.1.5= | =192.168.10.8= | =192.168.10.9= |
| PM 1 | DE LA FUENTE Axel | =192.168.1.6= | =192.168.10.10= | =192.168.10.11= |
| PM 1 | KARTAL Emre | =192.168.1.7= | =192.168.10.12= | =192.168.10.13= |
| PM 1 | KHEDAIR Rami | =192.168.1.8= | =192.168.10.14= | =192.168.10.15= |
| PM 1 | LIVET Hugo | =192.168.1.9= | =192.168.10.16= | =192.168.10.17= |
| PM 1 | PERRET Loris | =192.168.1.10= | =192.168.10.18= | =192.168.10.19= |
| PM 1 | PINTRAND Aurelien | =192.168.1.11= | =192.168.10.20= | =192.168.10.21= |
| PM 1 | SQUIZZATO Paul | =192.168.1.12= | =192.168.10.22= | =192.168.10.23= |
| PM 1 | VALIN Arthur | =192.168.1.13= | =192.168.10.24= | =192.168.10.25= |
| Groupe | Nom | IP publique proxy | IP privée proxy | IP application |
|-------------+----------------------+-------------------+------------------+------------------|
| PM 2 | BONNEAU Baptiste | =192.168.1.14= | =192.168.10.26= | =192.168.10.27= |
| PM 2 | BRODA Lou | =192.168.1.15= | =192.168.10.28= | =192.168.10.29= |
| PM 2 | CENTENO Matéo | =192.168.1.16= | =192.168.10.30= | =192.168.10.31= |
| PM 2 | DA COSTA CUNHA Bruno | =192.168.1.17= | =192.168.10.32= | =192.168.10.33= |
| PM 2 | DELANIER Lucas | =192.168.1.18= | =192.168.10.34= | =192.168.10.35= |
| PM 2 | EVARD Lucas | =192.168.1.19= | =192.168.10.36= | =192.168.10.37= |
| PM 2 | FERREIRA Pierre | =192.168.1.20= | =192.168.10.38= | =192.168.10.39= |
| PM 2 | FRANCO Nicolas | =192.168.1.21= | =192.168.10.40= | =192.168.10.41= |
| PM 2 | GLENAT Alexandre | =192.168.1.22= | =192.168.10.42= | =192.168.10.43= |
| PM 2 | HASSANI Mohamed | =192.168.1.23= | =192.168.10.44= | =192.168.10.45= |
| PM 2 | JEAN Mathilde | =192.168.1.24= | =192.168.10.46= | =192.168.10.47= |
| PM 2 | PARANT Louison | =192.168.1.25= | =192.168.10.48= | =192.168.10.49= |
| PM 2 | SAOULA Zakariya | =192.168.1.26= | =192.168.10.50= | =192.168.10.51= |
| PM 2 | ZBOROWSKI Lucas | =192.168.1.27= | =192.168.10.52= | =192.168.10.53= |
| Groupe | Nom | IP publique proxy | IP privée proxy | IP application |
|-------------+----------------------+-------------------+------------------+------------------|
| PM 3 | ASTOLFI Vincent | =192.168.1.28= | =192.168.10.54= | =192.168.10.55= |
| PM 3 | BEDOURET Lucie | =192.168.1.29= | =192.168.10.56= | =192.168.10.57= |
| PM 3 | CHAZOT Thomas | =192.168.1.30= | =192.168.10.58= | =192.168.10.59= |
| PM 3 | DUFOUR Louis | =192.168.1.31= | =192.168.10.60= | =192.168.10.61= |
| PM 3 | HASSOU Rayhân | =192.168.1.32= | =192.168.10.62= | =192.168.10.63= |
| PM 3 | JOLYS Enzo | =192.168.1.33= | =192.168.10.64= | =192.168.10.65= |
| PM 3 | LACHENAL Johan | =192.168.1.34= | =192.168.10.66= | =192.168.10.67= |
| PM 3 | LANONE Maxence | =192.168.1.35= | =192.168.10.68= | =192.168.10.69= |
| PM 3 | LEVADOUX Tim | =192.168.1.36= | =192.168.10.70= | =192.168.10.71= |
| PM 3 | MIELCAREK Félix | =192.168.1.37= | =192.168.10.72= | =192.168.10.73= |
| PM 3 | MOURGAND Chloé | =192.168.1.38= | =192.168.10.74= | =192.168.10.75= |
| PM 3 | RANDON Noan | =192.168.1.39= | =192.168.10.76= | =192.168.10.77= |
| PM 3 | REGNAULT Rémi | =192.168.1.40= | =192.168.10.78= | =192.168.10.79= |
| PM 3 | VERDIER Nathan | =192.168.1.41= | =192.168.10.80= | =192.168.10.81= |
| Groupe | Nom | IP publique proxy | IP privée proxy | IP application |
|-------------+----------------------+-------------------+------------------+------------------|
| WEB 1 | ARGOUT Owen | =192.168.1.42= | =192.168.10.82= | =192.168.10.83= |
| WEB 1 | BARLET Tristan | =192.168.1.43= | =192.168.10.84= | =192.168.10.85= |
| WEB 1 | BENJELLOUN Othmane | =192.168.1.44= | =192.168.10.86= | =192.168.10.87= |
| WEB 1 | BRETTE Laurine | =192.168.1.45= | =192.168.10.88= | =192.168.10.89= |
| WEB 1 | CARREAU Alexis | =192.168.1.46= | =192.168.10.90= | =192.168.10.91= |
| WEB 1 | CARVALHEIRO Justin | =192.168.1.47= | =192.168.10.92= | =192.168.10.93= |
| WEB 1 | DUPIN Théo | =192.168.1.48= | =192.168.10.94= | =192.168.10.95= |
| WEB 1 | FILLOT Romain | =192.168.1.49= | =192.168.10.96= | =192.168.10.97= |
| WEB 1 | FRIZOT Colin | =192.168.1.50= | =192.168.10.98= | =192.168.10.99= |
| WEB 1 | LAMANDE Alexis | =192.168.1.51= | =192.168.10.100= | =192.168.10.101= |
| WEB 1 | MEURET Justine | =192.168.1.52= | =192.168.10.102= | =192.168.10.103= |
| WEB 1 | PIERRON Joan | =192.168.1.53= | =192.168.10.104= | =192.168.10.105= |
| WEB 1 | ROCHELLE Hugo | =192.168.1.54= | =192.168.10.106= | =192.168.10.107= |
| WEB 1 | SABATIER Audric | =192.168.1.55= | =192.168.10.108= | =192.168.10.109= |
| WEB 1 | VALADE Lou | =192.168.1.56= | =192.168.10.110= | =192.168.10.111= |
| Groupe | Nom | IP publique proxy | IP privée proxy | IP application |
|--------+------------------+-------------------+------------------+------------------|
| WEB 2 | ARNAL Rémi | =192.168.1.57= | =192.168.10.112= | =192.168.10.113= |
| WEB 2 | BAVEREL Baptiste | =192.168.1.58= | =192.168.10.114= | =192.168.10.115= |
| WEB 2 | BESSON Jérémy | =192.168.1.59= | =192.168.10.116= | =192.168.10.117= |
| WEB 2 | FRÉVILLE Clément | =192.168.1.60= | =192.168.10.118= | =192.168.10.119= |
| WEB 2 | GARNIER Noé | =192.168.1.61= | =192.168.10.120= | =192.168.10.121= |
| WEB 2 | HODIN Dorian | =192.168.1.62= | =192.168.10.122= | =192.168.10.123= |
| WEB 2 | JAULT Aurian | =192.168.1.63= | =192.168.10.124= | =192.168.10.125= |
| WEB 2 | LAPORTE Clément | =192.168.1.64= | =192.168.10.126= | =192.168.10.127= |
| WEB 2 | MARCEL Baptiste | =192.168.1.65= | =192.168.10.128= | =192.168.10.129= |
| WEB 2 | MAZINGUE Matis | =192.168.1.66= | =192.168.10.130= | =192.168.10.131= |
| WEB 2 | OLLIER Bastien | =192.168.1.67= | =192.168.10.132= | =192.168.10.133= |
| WEB 2 | PRADIER Hugo | =192.168.1.68= | =192.168.10.134= | =192.168.10.135= |
| WEB 2 | RICHARD Corentin | =192.168.1.69= | =192.168.10.136= | =192.168.10.137= |
| WEB 2 | THIERY Marc | =192.168.1.70= | =192.168.10.138= | =192.168.10.139= |

Binary file not shown.

@ -0,0 +1,271 @@
% Created 2024-05-07 mar. 19:18
% Intended LaTeX compiler: pdflatex
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{longtable}
\usepackage{wrapfig}
\usepackage{rotating}
\usepackage[normalem]{ulem}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{capt-of}
\usepackage{hyperref}
\usepackage{minted}
\usepackage[utf8]{inputenc}
\usepackage[inkscapelatex=false]{svg}
\usepackage[sfdefault]{AlegreyaSans}
\usepackage{multicol}
\usepackage{minted}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{positioning}
\renewcommand\listingscaption{Exemple de code}
\date{}
\title{TP1 - Cours de virtualisation avancée - \emph{Proxmox}}
\hypersetup{
pdfauthor={Evrard Van Espen},
pdftitle={TP1 - Cours de virtualisation avancée - \emph{Proxmox}},
pdfkeywords={},
pdfsubject={},
pdfcreator={Emacs 30.0.50 (Org mode 9.6.15)},
pdflang={English}}
\begin{document}
\maketitle
{\large{Lire l'intégralité du TP avant de commencer quoi que ce soit !}}
\newpage
L'objectif de ce TP est de découvrir l'environnement de virtualisation "\emph{Proxmox}" en mettant en place vous même plusieurs machines type \emph{\textbf{conteneurs}} qui vont devoir communiquer ensemble.
Lors de ce TP, vous allez mettre en place des \textbf{conteneurs} (abrégés \textbf{CT}) plutôt que des machines virtuelles afin de gagner du temps.
Cependant, gardez bien en tête que \textbf{conteneurs} et \textbf{machines virtuelles} sont certes similaires mais très différents !
Dans l'environnement \emph{Proxmox}, les gestions des conteneurs et des machines virtuelles sont très similaires et par conséquent, savoir manipuler l'un permet aussi de savoir comment manipuler l'autre.
\section{Travail à réaliser}
\label{sec:org6d26e02}
\begin{center}
\includesvg[width=6cm]{./images/schema-0}
\end{center}
Votre objectif lors de ce TP va être de mettre en place l'architecture ci dessus.
Il va vous falloir mettre en place deux \textbf{conteneurs}, dont un sera connecté à internet et un second, qui communiquera avec le premier via un réseau privé.
Sur le premier conteneur, il vous faudra installer et configurer le serveur \emph{Nginx} qui fera office de \emph{proxy} \emph{HTTP} pour permettre l'accès au site \emph{web} hébergé sur le second conteneur.
\medskip
Au début de la séance de TP, j'attribuerai à chacun·es de vous trois adresses \emph{IP} que vous devrez configurer sur les machines, qui seront ensuite nommées "IP publique proxy", "IP privée proxy" et "IP application".
N'oubliez pas de les noter ;)
\medskip
L'adresse de l'interface \emph{web} de l'instance \emph{Proxmox} que vous utiliserez est disponible ici: \href{https://pve.virtiut.online/}{\url{https://pve.virtiut.online/}}.
Dans l'écran de connexion, veillez à ce que le champ \emph{"Realm"} soit sur \emph{"Proxmox VE authentication server"}.
Aussi, une alerte quant à la licence de \emph{Proxmox} peut s'afficher.
Si tel est le cas, cliquez sur \emph{"Ok"} et poursuivez.
\medskip
Pour vous y connecter, utilisez comme mot de passe et comme utilisateur votre nom et prénom, le tout attaché et sans accents, tirets ou espaces.
\medskip
Par exemple, je mappelle \emph{"VAN ESPEN Évrard"}, j'utiliserai donc \texttt{vanespenevrard}.
\medskip
Si tout a été réalisé correctement, la page \emph{web} présente dans le serveur "application" devrait être accessible à l'adresse \texttt{<votre identifiant>.pve.virtiut.online}.
\section{Votre mission en étapes}
\label{sec:org5f84c65}
\begin{itemize}
\item Vous devrez créer les deux machines, avec pour chacune un cœur \emph{CPU} et 512MB de mémoire vive;
\item Vous devrez ensuite configurer les machines pour permettre la communication entre elles;
\item Vous devrez enfin installer \emph{sur chaque conteneur} le paquet \emph{nginx} (veillez bien à le (re)démarrer à chaque modification de sa configuration (\texttt{systemd})), puisqu'il sera utilisé une fois comme serveur \emph{web}, et une fois comme \emph{reverse proxy}. Sur quel conteneur tourne chacun des \emph{nginx} ? ;
\item Éditez le fichier \texttt{/var/www/html/index.nginx-debian.html} en mettant votre nom dans la page.
\end{itemize}
\section{Champs à configurer}
\label{sec:org8988fdc}
Lors de la création du conteneur, voici les champs que vous aurez à configurer.
Les autres champs que vous rencontrerez sont à laisser à leur valeur défaut.
\subsection{Onglet \emph{"General"}}
\label{sec:orgfd4ee85}
\begin{itemize}
\item \emph{"Hostname"}
\item \emph{"Password"} et \emph{"Confirm password"} -> ce sera le mot de passe de l'utilisateur \texttt{root} dans le conteneur (5 caractères minimum)
\item \emph{"Resource pool"} -> sélectionnez la \emph{pool} à votre nom
\end{itemize}
\subsection{Onglet \emph{"Template"}}
\label{sec:org40a1eb1}
\begin{itemize}
\item \emph{"Template"}
\end{itemize}
\subsection{Onglet \emph{"Disk"}}
\label{sec:orgcca7908}
\begin{itemize}
\item \emph{"Disk size"} -> mettre \texttt{1GiB}
\end{itemize}
\subsection{Onglet \emph{"CPU"}}
\label{sec:org93b7f0b}
\begin{itemize}
\item \emph{"Cores"}
\end{itemize}
\subsection{Onglet \emph{"Memory"}}
\label{sec:org62e9fa9}
\begin{itemize}
\item \emph{"Memory"}
\end{itemize}
\subsection{Onglet \emph{"Network"}}
\label{sec:org2350912}
\begin{itemize}
\item \emph{"Bridge"}
\item \emph{"IPv4/CIDR"}
\item \emph{"Gateway"} -> ici mettre \texttt{192.168.1.1} ou \texttt{192.168.10.1} selon l'ip
\end{itemize}
\section{Notes et astuces}
\label{sec:orgf9694e1}
\begin{itemize}
\item N'oubliez pas, la machine \emph{"proxy"} doit avoir deux interfaces réseau, une pour le réseau public et une pour le réseau privé;
\item Dans \emph{Proxmox}, les conteneurs sont souvent nommés \texttt{CT};
\item Lors de la création du conteneur, vous n'avez pas à vous préoccuper de chaque champ de l'interface. Voir plus bas la liste des champs que vous devrez configurer;
\item La machine \emph{"proxy"} doit utiliser l'interface \texttt{vmbr0} et avoir comme adresse \emph{IP} l'adresse "IP publique proxy" ainsi que l'interface \texttt{vmbr1} et avoir comme adresse \emph{IP} l'adresse "IP privée proxy";
\item La machine \emph{"application"} devra utiliser l'interface \texttt{vmbr1} et avoir comme adresse \emph{IP} l'adresse "IP application";
\item Le fichier de configuration de \emph{nginx} se situe dans le répertoire \texttt{/etc/nginx/site-enabled/} et se nomme \texttt{default};
\item Voici un fichier de configuration pour \emph{nginx} qui permet de l'utiliser en serveur \emph{proxy} comme demandé (replacez le contenu actuel du fichier):
\begin{verbatim}
server {
listen 80;
server_name <votre identifiant proxmox>.pve.virtuiut.online;
location / {
proxy_pass http://<adresse IP application>:80;
}
}
\end{verbatim}
\item Vous n'avez pas besoin de modifier la configuration de \emph{nginx} sur la machine "applicatif", par contre veilliez bien à le démarrer (\texttt{systemd}). Il sera accessible sur le port \texttt{80}.
\item Les serveurs \emph{nginx} vont-ils démarrer au \emph{boot} du conteneur ?
\end{itemize}
\newpage
\section{Adresses \emph{IP} à utiliser}
\label{sec:orgd2a1a7e}
\begin{center}
\begin{tabular}{lllll}
Groupe & Nom & IP publique proxy & IP privée proxy & IP application\\[0pt]
\hline
PM 1 & ANDRÉ Eloan & \texttt{192.168.1.2} & \texttt{192.168.10.2} & \texttt{192.168.10.3}\\[0pt]
PM 1 & BALLANDRAS Pierre & \texttt{192.168.1.3} & \texttt{192.168.10.4} & \texttt{192.168.10.5}\\[0pt]
PM 1 & BOILEAU Nathan & \texttt{192.168.1.4} & \texttt{192.168.10.6} & \texttt{192.168.10.7}\\[0pt]
PM 1 & BOUDOUL Anna & \texttt{192.168.1.5} & \texttt{192.168.10.8} & \texttt{192.168.10.9}\\[0pt]
PM 1 & DE LA FUENTE Axel & \texttt{192.168.1.6} & \texttt{192.168.10.10} & \texttt{192.168.10.11}\\[0pt]
PM 1 & KARTAL Emre & \texttt{192.168.1.7} & \texttt{192.168.10.12} & \texttt{192.168.10.13}\\[0pt]
PM 1 & KHEDAIR Rami & \texttt{192.168.1.8} & \texttt{192.168.10.14} & \texttt{192.168.10.15}\\[0pt]
PM 1 & LIVET Hugo & \texttt{192.168.1.9} & \texttt{192.168.10.16} & \texttt{192.168.10.17}\\[0pt]
PM 1 & PERRET Loris & \texttt{192.168.1.10} & \texttt{192.168.10.18} & \texttt{192.168.10.19}\\[0pt]
PM 1 & PINTRAND Aurelien & \texttt{192.168.1.11} & \texttt{192.168.10.20} & \texttt{192.168.10.21}\\[0pt]
PM 1 & SQUIZZATO Paul & \texttt{192.168.1.12} & \texttt{192.168.10.22} & \texttt{192.168.10.23}\\[0pt]
PM 1 & VALIN Arthur & \texttt{192.168.1.13} & \texttt{192.168.10.24} & \texttt{192.168.10.25}\\[0pt]
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{lllll}
Groupe & Nom & IP publique proxy & IP privée proxy & IP application\\[0pt]
\hline
PM 2 & BONNEAU Baptiste & \texttt{192.168.1.14} & \texttt{192.168.10.26} & \texttt{192.168.10.27}\\[0pt]
PM 2 & BRODA Lou & \texttt{192.168.1.15} & \texttt{192.168.10.28} & \texttt{192.168.10.29}\\[0pt]
PM 2 & CENTENO Matéo & \texttt{192.168.1.16} & \texttt{192.168.10.30} & \texttt{192.168.10.31}\\[0pt]
PM 2 & DA COSTA CUNHA Bruno & \texttt{192.168.1.17} & \texttt{192.168.10.32} & \texttt{192.168.10.33}\\[0pt]
PM 2 & DELANIER Lucas & \texttt{192.168.1.18} & \texttt{192.168.10.34} & \texttt{192.168.10.35}\\[0pt]
PM 2 & EVARD Lucas & \texttt{192.168.1.19} & \texttt{192.168.10.36} & \texttt{192.168.10.37}\\[0pt]
PM 2 & FERREIRA Pierre & \texttt{192.168.1.20} & \texttt{192.168.10.38} & \texttt{192.168.10.39}\\[0pt]
PM 2 & FRANCO Nicolas & \texttt{192.168.1.21} & \texttt{192.168.10.40} & \texttt{192.168.10.41}\\[0pt]
PM 2 & GLENAT Alexandre & \texttt{192.168.1.22} & \texttt{192.168.10.42} & \texttt{192.168.10.43}\\[0pt]
PM 2 & HASSANI Mohamed & \texttt{192.168.1.23} & \texttt{192.168.10.44} & \texttt{192.168.10.45}\\[0pt]
PM 2 & JEAN Mathilde & \texttt{192.168.1.24} & \texttt{192.168.10.46} & \texttt{192.168.10.47}\\[0pt]
PM 2 & PARANT Louison & \texttt{192.168.1.25} & \texttt{192.168.10.48} & \texttt{192.168.10.49}\\[0pt]
PM 2 & SAOULA Zakariya & \texttt{192.168.1.26} & \texttt{192.168.10.50} & \texttt{192.168.10.51}\\[0pt]
PM 2 & ZBOROWSKI Lucas & \texttt{192.168.1.27} & \texttt{192.168.10.52} & \texttt{192.168.10.53}\\[0pt]
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{lllll}
Groupe & Nom & IP publique proxy & IP privée proxy & IP application\\[0pt]
\hline
PM 3 & ASTOLFI Vincent & \texttt{192.168.1.28} & \texttt{192.168.10.54} & \texttt{192.168.10.55}\\[0pt]
PM 3 & BEDOURET Lucie & \texttt{192.168.1.29} & \texttt{192.168.10.56} & \texttt{192.168.10.57}\\[0pt]
PM 3 & CHAZOT Thomas & \texttt{192.168.1.30} & \texttt{192.168.10.58} & \texttt{192.168.10.59}\\[0pt]
PM 3 & DUFOUR Louis & \texttt{192.168.1.31} & \texttt{192.168.10.60} & \texttt{192.168.10.61}\\[0pt]
PM 3 & HASSOU Rayhân & \texttt{192.168.1.32} & \texttt{192.168.10.62} & \texttt{192.168.10.63}\\[0pt]
PM 3 & JOLYS Enzo & \texttt{192.168.1.33} & \texttt{192.168.10.64} & \texttt{192.168.10.65}\\[0pt]
PM 3 & LACHENAL Johan & \texttt{192.168.1.34} & \texttt{192.168.10.66} & \texttt{192.168.10.67}\\[0pt]
PM 3 & LANONE Maxence & \texttt{192.168.1.35} & \texttt{192.168.10.68} & \texttt{192.168.10.69}\\[0pt]
PM 3 & LEVADOUX Tim & \texttt{192.168.1.36} & \texttt{192.168.10.70} & \texttt{192.168.10.71}\\[0pt]
PM 3 & MIELCAREK Félix & \texttt{192.168.1.37} & \texttt{192.168.10.72} & \texttt{192.168.10.73}\\[0pt]
PM 3 & MOURGAND Chloé & \texttt{192.168.1.38} & \texttt{192.168.10.74} & \texttt{192.168.10.75}\\[0pt]
PM 3 & RANDON Noan & \texttt{192.168.1.39} & \texttt{192.168.10.76} & \texttt{192.168.10.77}\\[0pt]
PM 3 & REGNAULT Rémi & \texttt{192.168.1.40} & \texttt{192.168.10.78} & \texttt{192.168.10.79}\\[0pt]
PM 3 & VERDIER Nathan & \texttt{192.168.1.41} & \texttt{192.168.10.80} & \texttt{192.168.10.81}\\[0pt]
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{lllll}
Groupe & Nom & IP publique proxy & IP privée proxy & IP application\\[0pt]
\hline
WEB 1 & ARGOUT Owen & \texttt{192.168.1.42} & \texttt{192.168.10.82} & \texttt{192.168.10.83}\\[0pt]
WEB 1 & BARLET Tristan & \texttt{192.168.1.43} & \texttt{192.168.10.84} & \texttt{192.168.10.85}\\[0pt]
WEB 1 & BENJELLOUN Othmane & \texttt{192.168.1.44} & \texttt{192.168.10.86} & \texttt{192.168.10.87}\\[0pt]
WEB 1 & BRETTE Laurine & \texttt{192.168.1.45} & \texttt{192.168.10.88} & \texttt{192.168.10.89}\\[0pt]
WEB 1 & CARREAU Alexis & \texttt{192.168.1.46} & \texttt{192.168.10.90} & \texttt{192.168.10.91}\\[0pt]
WEB 1 & CARVALHEIRO Justin & \texttt{192.168.1.47} & \texttt{192.168.10.92} & \texttt{192.168.10.93}\\[0pt]
WEB 1 & DUPIN Théo & \texttt{192.168.1.48} & \texttt{192.168.10.94} & \texttt{192.168.10.95}\\[0pt]
WEB 1 & FILLOT Romain & \texttt{192.168.1.49} & \texttt{192.168.10.96} & \texttt{192.168.10.97}\\[0pt]
WEB 1 & FRIZOT Colin & \texttt{192.168.1.50} & \texttt{192.168.10.98} & \texttt{192.168.10.99}\\[0pt]
WEB 1 & LAMANDE Alexis & \texttt{192.168.1.51} & \texttt{192.168.10.100} & \texttt{192.168.10.101}\\[0pt]
WEB 1 & MEURET Justine & \texttt{192.168.1.52} & \texttt{192.168.10.102} & \texttt{192.168.10.103}\\[0pt]
WEB 1 & PIERRON Joan & \texttt{192.168.1.53} & \texttt{192.168.10.104} & \texttt{192.168.10.105}\\[0pt]
WEB 1 & ROCHELLE Hugo & \texttt{192.168.1.54} & \texttt{192.168.10.106} & \texttt{192.168.10.107}\\[0pt]
WEB 1 & SABATIER Audric & \texttt{192.168.1.55} & \texttt{192.168.10.108} & \texttt{192.168.10.109}\\[0pt]
WEB 1 & VALADE Lou & \texttt{192.168.1.56} & \texttt{192.168.10.110} & \texttt{192.168.10.111}\\[0pt]
\end{tabular}
\end{center}
\begin{center}
\begin{tabular}{lllll}
Groupe & Nom & IP publique proxy & IP privée proxy & IP application\\[0pt]
\hline
WEB 2 & ARNAL Rémi & \texttt{192.168.1.57} & \texttt{192.168.10.112} & \texttt{192.168.10.113}\\[0pt]
WEB 2 & BAVEREL Baptiste & \texttt{192.168.1.58} & \texttt{192.168.10.114} & \texttt{192.168.10.115}\\[0pt]
WEB 2 & BESSON Jérémy & \texttt{192.168.1.59} & \texttt{192.168.10.116} & \texttt{192.168.10.117}\\[0pt]
WEB 2 & FRÉVILLE Clément & \texttt{192.168.1.60} & \texttt{192.168.10.118} & \texttt{192.168.10.119}\\[0pt]
WEB 2 & GARNIER Noé & \texttt{192.168.1.61} & \texttt{192.168.10.120} & \texttt{192.168.10.121}\\[0pt]
WEB 2 & HODIN Dorian & \texttt{192.168.1.62} & \texttt{192.168.10.122} & \texttt{192.168.10.123}\\[0pt]
WEB 2 & JAULT Aurian & \texttt{192.168.1.63} & \texttt{192.168.10.124} & \texttt{192.168.10.125}\\[0pt]
WEB 2 & LAPORTE Clément & \texttt{192.168.1.64} & \texttt{192.168.10.126} & \texttt{192.168.10.127}\\[0pt]
WEB 2 & MARCEL Baptiste & \texttt{192.168.1.65} & \texttt{192.168.10.128} & \texttt{192.168.10.129}\\[0pt]
WEB 2 & MAZINGUE Matis & \texttt{192.168.1.66} & \texttt{192.168.10.130} & \texttt{192.168.10.131}\\[0pt]
WEB 2 & OLLIER Bastien & \texttt{192.168.1.67} & \texttt{192.168.10.132} & \texttt{192.168.10.133}\\[0pt]
WEB 2 & PRADIER Hugo & \texttt{192.168.1.68} & \texttt{192.168.10.134} & \texttt{192.168.10.135}\\[0pt]
WEB 2 & RICHARD Corentin & \texttt{192.168.1.69} & \texttt{192.168.10.136} & \texttt{192.168.10.137}\\[0pt]
WEB 2 & THIERY Marc & \texttt{192.168.1.70} & \texttt{192.168.10.138} & \texttt{192.168.10.139}\\[0pt]
\end{tabular}
\end{center}
\end{document}
Loading…
Cancel
Save