The Doppler Quarterly (FRANÇAIS) Printemps 2018 | Page 65
Un service est défini et déployé par le biais d’un fichier de configuration en langage
YAML (YAML Ain't Markup Language). Le déploiement est défini dans un style
déclaratif qui spécifie l’état final, lequel est maintenu le mieux possible par K8s.
Vous pouvez ainsi définir un service dans lequel le déploiement doit comporter en
permanence huit Pods exécutés dans le cluster. Si un Pod connaît un échec, K8s
fera tout son possible pour planifier un autre Pod, de manière à maintenir l’état final
défini dans le déploiement (c'est-à-dire, dans cet exemple, huit Pods en cours d’ex-
écution). Le nœud principal K8s essaiera également de planifier des Pods sur des
nœuds de travail aussi efficacement que possible sur le cluster, en assurant la répar-
tition de la charge et la résilience de façon homogène.
Kubernetes Master
Gestionnaire
de contrôleur
Serveur
d’API
utilisateurs
Planificateur
Développeur
/opérateur
etcd
Kubelet
cAdvisor
Pod
Pod
Kube-Proxy
...
Pod
Kubelet
...
Pod
CAdvisor
Pod
Kube-Proxy
...
Pod
Réseau de plug-ins (Flannel, Weavenet, etc.)
Nœud Kubernetes
Nœud Kubernetes
Figure 3 : Architecture Kubernetes
Helm
Nous venons donc d'identifier un système capable de résoudre le problème de plan-
ification automatique et d'assurer la résilience au sein de ce cluster distribué, mais
comment décrire l’application que vous souhaitez déployer ? Vous pourriez vous
dire que la configuration YAML risque de devenir assez complexe, même pour un
site Web relativement simple comme une boutique de chaussettes, puisque vous
devez spécifier des ConfigMaps, des services, des Pods, des volumes persistants,
etc. C’est ici qu’intervient Helm. Helm est une sorte de gestionnaire de modules
destiné à K8s, analogue à ce que yum et apt sont sous Linux. De même, il existe des
Helm Charts et des packages K8s similaires aux modules deb et rpm. Helm fournit
aux développeurs un moyen de packager leur application complète dans des Charts,
lesquels peuvent ensuite être installés sur un cluster K8s via une commande unique.
Non seulement Helm met à votre disposition un gestionnaire de paquets efficace
pour K8s, mais il vous permet d’empaqueter et de publier vos applications sur des
référentiels publics afin de les rendre accessibles à d'autres utilisateurs. Les dével-
oppeurs peuvent ainsi puiser parmi des centaines de Charts bien organisés et par-
faitement stables, et exploiter une grande variété d’applications utiles, qui vont des
bases de données (MySQL, MongoDB) à des applications de publication Web telles
que WordPress.
PRINTEMPS 2018 | THE DOPPLER | 63