% Created 2024-05-29 mer. 11:19
% 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[a4paper,margin=0.5in]{geometry}
\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}
\usepackage[tikz]{bclogo}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\usepackage{ragged2e}
\usepackage{environ}
\date{}
\title{TP1 - Cours de virtualisation avancée - \emph{Kubernetes}, introduction}
\hypersetup{
 pdfauthor={Evrard Van Espen},
 pdftitle={TP1 - Cours de virtualisation avancée - \emph{Kubernetes}, introduction},
 pdfkeywords={},
 pdfsubject={},
 pdfcreator={Emacs 30.0.50 (Org mode 9.6.15)}, 
 pdflang={English}}
\begin{document}

\maketitle
\NewEnviron{warning}%
  {\begin{center}%
  \begin{tcolorbox}[notitle,
    colback=orange!5!white,
    colbacklower=white,
    frame hidden,
    boxrule=0pt,
    bicolor,
    sharp corners,
    borderline west={4pt}{0pt}{orange!50!black},
    fontupper=\sffamily]
     \textcolor{orange!50!black}{
        \sffamily
        \textbf{Attention:\\}%
    }%
    \BODY
  \end{tcolorbox}
  \end{center}%
  }

\NewEnviron{good}%
  {\begin{center}%
  \begin{tcolorbox}[notitle,
    colback=green!5!white,
    colbacklower=white,
    frame hidden,
    boxrule=0pt,
    bicolor,
    sharp corners,
    borderline west={4pt}{0pt}{green!50!black},
    fontupper=\sffamily]
     \textcolor{green!50!black}{
        \sffamily
    }%
    \BODY
  \end{tcolorbox}
  \end{center}%
  }  

\begin{warning}
Comme pour le TP de la semaine dernière, vous allez travailler dans une machine virtuelle VDN.

\medskip

N'oubliez pas de lancer \\[0pt]
\texttt{export no\_proxy="127.0.0.1,.vdn,localhost,192.168.49.1/24,10.96.0.0/12"} \\[0pt]
à chaque connexion \texttt{ssh} !

\medskip

Pour lancer \emph{Minikube}, lancez la commande \texttt{./minikube start} (attention vous aviez probablement laissé les binaires \texttt{minikube} et \texttt{kubectl} dans le dossier du TP2).

\medskip

N'oubliez pas aussi de laisser un autre terminal tourner avec la commande \texttt{minikube tunnel} ;)
\end{warning}

L'objectif de ce TP est de mettre en place une architecture plus compliquée que la semaine dernière.
Cette architecture mettra en place les éléments vus la semaine dernière ainsi que les éléments vus cette semaine:
\begin{itemize}
\item \emph{Deployment}
\item \emph{Service}
\item \emph{ConfigMap}
\item \emph{PersistentVolume}
\item \emph{PersistentVolumeClaim}
\end{itemize}

Utilisations des ressources:
\begin{itemize}
\item Les variables d’environnement des conteneurs doivent être stockées dans une \emph{ConfigMap}
\item La base de données doit utiliser un volume pour sauvegarder ses fichiers
\end{itemize}

\begin{center}
\includegraphics[width=4cm]{./archi.png}
\end{center}

\section{Images à utiliser}
\label{sec:orgbfee077}
\begin{itemize}
\item \texttt{evanespen/database} -> \url{https://hub.docker.com/r/evanespen/database}
\item \texttt{evanespen/application} -> \url{https://hub.docker.com/r/evanespen/application}
\end{itemize}

\begin{warning}
Lisez bien les description des images !
\end{warning}

\section{Notes}
\label{sec:org3787778}
Pour faire communiquer deux \emph{Pods} via un service, vous pouvez utiliser le nom du service en tant que nom de domaine.
Par exemple, si j'ai un service "backend-svc" qui expose en HTTP sur le port 8080, je peux y accéder depuis les \emph{Pods} via l'URL \texttt{http://backend-svc:8080}.

\section{Aide}
\label{sec:org3102b9d}
Référez vous au cours et à ces documentations pour y parvenir (ce sont bien des liens):
\begin{itemize}
\item \href{https://kubernetes.io/fr/docs/concepts/services-networking/service/}{\emph{Service}}
\item \href{https://kubernetes.io/docs/concepts/workloads/pods/}{\emph{Pod}}
\item \href{https://kubernetes.io/docs/concepts/workloads/controllers/deployment/}{\emph{Deployment}}
\item \href{https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/}{\emph{PV} et \emph{PVC}}
\end{itemize}

Amusez vous bien ;)
\end{document}
