% 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} \date{} \title{Cours de virtualisation avancée: \emph{Kubernetes}, suite} \hypersetup{ pdfauthor={Evrard Van Espen}, pdftitle={Cours de virtualisation avancée: \emph{Kubernetes}, suite}, pdfkeywords={}, pdfsubject={}, pdfcreator={Emacs 30.0.50 (Org mode 9.6.15)}, pdflang={English}} \begin{document} \maketitle \section{\emph{Rolling Updates}} \label{sec:org16f1979} Permet des mises à jour d'images sans temps de coupure \begin{minted}[]{yaml} --- ... spec: ... strategy: type: RollingUpdate rollingUpdate: maxUnavailable: 0 ... \end{minted} \begin{itemize} \item \texttt{maxUnavailable}: défini le nombre maximal de \emph{replicas} indisponibles \item \texttt{maxSurge}: défini le nombre maximal de \emph{replicas} à mettre à jour en même temps \end{itemize} Ensuite, mettre à jour l'image avec: \begin{minted}[]{bash} kubectl set image deployment/ = \end{minted} \textbf{But}: \begin{itemize} \item Mettre à jour l'application sans \emph{downtime} \end{itemize} \section{Déploiement \emph{blue / green}} \label{sec:org12d4e94} \begin{center} \includesvg[width=.9\linewidth]{./images/blue_green} \end{center} \begin{itemize} \item On déploie la nouvelle version en parallèle de l'ancienne \item Une fois que tout est déployé on redirige le trafic vers le nouveau déploiement \end{itemize} \textbf{But}: \begin{itemize} \item Tester le déploiement de la nouvelle version avant de la basculer en prod \end{itemize} \section{Déploiement \emph{canary}} \label{sec:orga83dd0b} \begin{center} \includesvg[width=.9\linewidth]{./images/canary} \end{center} \begin{itemize} \item On déploie la nouvelle version en parallèle de l'ancienne \textbf{avec moins de \emph{replicas}} \item Automatiquement une petite partie des clients tomberont sur la nouvelle version \end{itemize} \textbf{But}: \begin{itemize} \item Faire tester à quelques utilisateurs aléatoires la nouvelle version \end{itemize} \section{Mise à l'échelle (\emph{scaling})} \label{sec:orge0f2cfb} \begin{itemize} \item Nécessaire quand la charge augmente \item Par exemple pour suivre l'augmentation du trafic de notre application \end{itemize} \subsection{Verticale (\emph{vertical scaling})} \label{sec:org42b7a6d} \subsubsection{Fonctionnement} \label{sec:orgc206495} \begin{itemize} \item On augmente la puissance des nœuds \item Augmente les capacité de l'application existante \item L'application n'a pas besoin d’être capable de gérer la réplication \end{itemize} \subsubsection{Inconvénients} \label{sec:org3049ea8} \begin{itemize} \item Coûts pas toujours proportionnels à la puissance des nœuds \item Si nœud déjà au max: comment faire ? \end{itemize} \section{Aller plus loin} \label{sec:org39d2766} \end{document}