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